洛谷 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.循环,走寻常路
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!