用1,2,3……9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi = 1:2:3。输出所有解。提示:不必太动脑筋。

分析:利用数组,a[1]~a[9]赋值为0,令a[出现的数字] = 1,若a[1] + a[2] + …… +a[9] == 9,则全部数字都出现。

代码:

#include<stdio.h>
int main()
{
    int x,y,z,i,sum;
    int a[10]={0};
    for(x=100;x<333;x++)
    {
        sum=0;
        y=2*x;
        z=3*x;
        //令a[出现的数字]=1;次数为1; 
        a[x/100]=a[x/10%10]=a[x%10]=1;
        a[y/100]=a[y/10%10]=a[y%10]=1;
        a[z/100]=a[z/10%10]=a[z%10]=1;
        for(i=1;i<10;i++)
           sum+=a[i];
        if(sum==9)
           printf("%d\t%d\t%d\n",x,y,z); 
        //把a[]重新置零 
        for(i=1;i<10;i++)
           a[i]=0;
    }
    return 0;
}
posted on 2014-07-17 14:48  lipching  阅读(115)  评论(0编辑  收藏  举报