posts - 17,  comments - 0,  trackbacks - 0

三位数 [EASY]

Time Limit:1000MS  Memory Limit:65536K
Total Submit:374 Accepted:183

Description

将1,2,…,9共9个数分成三组,分别组成三个三位数a、b、c,且使这三个三位数构成a:b:c=1:2:3的比例,试求出所有满足条件的三个三位数。 
例如:三个三位数192,384,576满足以上条件。

Input

Output

每行一组结果,由小到大排列。 
每行3个三位数,由小到大排列,中间用一个空格隔开。
 
我的代码如下: 

 1 #include <cstdlib>
 2
 #include <iostream>
 3 
 4 using namespace std;
 5 
 6 int main(int argc, char *argv[])
 7 {
 8     int i,j,k,n,a[9],num;
 9     for(i=123;i<=327;i++)//因为987/3=329 984/3=328 981/3=327,所以i的最小值是123,最大值是327
10     {   n=0;        
11         if(i/100!=i%100/10&&i/100!=i%10&&i%100/10!=i%10&&i%100/10!=0&&i%10!=0)
12         {
13             for(j=1;j<=3;j++)//将9个数字3个为一组存入数组a[9]
14             {
15                 a[n++]=j*i/100;
16                 a[n++]=j*i%100/10;
17                 a[n++]=j*i%10;
18             }
19             
20             for(j=0;j<9;j++)//去掉a[i]的值含有0元素和重复元素的项。当num==0时,输出数组a[]
21             {   
22                 num=0;
23                 if(a[j]!=0)            
24                   {  
25                       for(k=j+1;k<9;k++)
26                     {
27                         if(a[j]==a[k])
28                         {
29                             num++;
30                           break;
31                         }
32                                                                     
33                     }
34                     if(num>0)
35                         break;  
36                   } 
37                   else 
38                   {
39                       num++;
40                       break;
41                   }                                             
42             }
43             
44             if(num==0)//输出数组a[]的所有9个元素,每三个元素为一组,后面用空格隔开
45               {  
46                 for(j=1;j<10;j++)
47                 {
48                     cout<<a[j-1];
49                     if(j%3==0)
50                     cout<<" ";
51                 }
52                 cout<<endl; 
53               }     
54         }
55         
56     }
57     system("PAUSE");
58     return 0;
59 }
60 
参考代码:
posted on 2011-10-28 00:39 刘聪 阅读(435) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理