题目描述 Description
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
标签:
192 384 576
* * *
...
* * *
(输出被和谐了)
思路:从123到987循环,再对1~9的每个数进行扫描,对每三个数分别进行处理,存入数组,最后扫描一遍数组,如果满足1:2:3的条件,输出即可。
代码如下:
1 #include<stdio.h> 2 int main() 3 { 4 int i,j,k,h,s; 5 int a[10]; 6 for(i=123;i*3<=987;i++)//123~987循环 7 { 8 for(h=1;h<10;h++)//对每个数进行循环 9 { 10 a[h]=0;//清零 11 /*================*///第一个数 12 a[i/100]=1;//百位 13 a[i/10%10]=1;//个位 14 a[i%10]=1;//十位 15 /*================*///第二个数 16 j=i*2; 17 a[j/100]=1;//百位 18 a[j/10%10]=1;//个位 19 a[j%10]=1;//十位 20 /*================*///第三个数 21 k=i*3; 22 a[k/100]=1;//百位 23 a[k/10%10]=1;//个位 24 a[k%10]=1;//十位 25 /*================*/ 26 } 27 for(s=0,h=1;h<10;h++) 28 { 29 s=s+a[h];//加上数组中的数 30 if(s==9)//满足1:2:3的条件 31 printf("%d %d %d\n",i,j,k); 32 } 33 } 34 return 0; 35 }
标签:
原文地址:http://www.cnblogs.com/geek-007/p/4296925.html