排列
用1,2,3,…,9组成3个三位数abc, def和ghi,每个数字恰好使用一次,要求abc:def:ghi = 1:2:3。按照"abc def ghi"的格式输出所有解,每行一个解。提示:不必太动脑筋。
解题关键
- 如何确保每个数字只用一次。
- 如何利用abc:def : ghi = 1 : 2 : 3 这一数量关系。
先放代码:
#include <stdio.h>
#include <string.h>
int main()
{
int x,y,z,num[10];
for(x=123;x<329;x++){
memset(num,0,sizeof(num));
y=2*x;
z=3*x;
num[x/100]++;
//当前位上的数字大于0,即当前数字已使用,则直接跳过,其次,数字只有1-9,不能存在0.
if(num[x%100/10]++>0||num[x%10]++>0||
num[y/100]++>0||num[y%100/10]++>0||num[y%10]++>0||
num[z/100]++>0||num[z%100/10]++>0||num[z%10]++>0||num[0]>0)continue;
p