用1,2,3,...9组成三位数abc,def,ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。提示:不必太动脑筋。
【分析】因为abc:def:ghi=1:2:3,所以abc最大不超过333,最小不超过111,可以以abc为基数,用abc来表示def和ghi,用一个数组储存1-9,共9个数,将用过的数里存为1,输出时判断数组加起来是否为9即可
#include<cstdio>
using namespace std;
int main()
{
int i;
int s[10];
for(i=111;i<333;i++)
{
for(int m=0;m<10;m++)
s[m]=0;
s[i/100]=1;
s[i/10%10]=1;
s[i%10]=1;
int j=2*i;
s[j/100]=1;
s[j/10%10]=1;
s[j%10]=1;
int k=3*i;
s[k/100]=1;
s[k/10%10]=1;
s[k%10]=1;
int sum=0;
for(int m=1;m<10;m++)
sum=sum+s[m];
if(sum==9)
printf("%d %d %d\n",i,j,k);
}
return 0;
}