洛谷-三连击-循环!循环!循环!

题目描述 Description
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
 输入输出格式 Input/output
输入格式:
木有输入
输出格式:
若干行,每行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
",i,j,k);  
32         }                
33     }  
34     return 0;  
35 }  
我不怕千万人阻挡,只怕自己投降…
原文地址:https://www.cnblogs.com/geek-007/p/4296925.html