洛谷 P1008 三连击 Label:水

题目描述

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。

输入输出格式

输入格式:

 

木有输入

 

输出格式:

 

若干行,每行3个数字。按照每行第一个数字升序排列。

 

输入输出样例

输入样例#1:

输出样例#1:

192 384 576

* * *

...

* * *

(输出被和谐了)

代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int used[15];
 7 
 8 int check(int a,int b,int c){
 9     memset(used,0,sizeof(used));
10     for(int i=1;i<=3;i++){
11         used[a%10]=1;
12         a/=10;
13     }
14     for(int i=1;i<=3;i++){
15         used[b%10]=1;
16         b/=10;
17     }
18     for(int i=1;i<=3;i++){
19         used[c%10]=1;
20         c/=10;
21     }
22     if(used[0]>0) return 0;
23     for(int i=1;i<10;i++) if(used[i]==0) return 0;
24     return 1;
25 }
26 
27 int main(){
28 //  freopen("01.txt","r",stdin);
29     for(int i=100;i<=333;i++)
30         if(check(i,i*2,i*3))
31             printf("%d %d %d\n",i,i*2,i*3);
32 
33     return 0;
34 }

终于会做了

两种方案:

1.手算,直接输出(我觉得比打代码快)

2.循环,走寻常路

 

posted @ 2016-08-24 19:49  Radiumlrb  阅读(407)  评论(0编辑  收藏  举报