将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成A:B:C的比例,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。
标签:
题目描述 Description
192 384 576
219 438 657
273 546 819
327 654 981
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int a,b,c,x[9],a1,a2,a3; 6 int y=0,ans=0,flag[10]={0},i,j; //用flag统计数字是否用过 7 cin>>a1>>a2>>a3; //输入 8 for(j=1;j<=1000/a3;j++) 9 { 10 y=0; 11 for(i=0;i<9;i++) 12 flag[i]=0; //全归0 13 a=a1*j; 14 b=a2*j; //按比例赋值 15 c=a3*j; 16 if(a>=1000||b>1000||c>1000) 17 break; //超出范围的情况 18 /*=================================*/ 19 x[0]=a/100; 20 x[1]=(a/10)%10; 21 x[2]=a%10; 22 x[3]=b/100; 23 x[4]=(b/10)%10; //把每一位数放入数组中 24 x[5]=b%10; 25 x[6]=c/100; 26 x[7]=(c/10)%10; 27 x[8]=c%10; 28 /*=================================*/ 29 for(i=0;i<9;i++) 30 flag[x[i]-1]=1; //统计用过的数(用过就变成1) 31 for(i=0;i<9;i++) 32 y+=flag[i]; //统计用过多少个 33 if(y==9) //如果y=9的话,就代表所有数都用过,输出 34 { 35 cout<<a<<" "<<b<<" "<<c<<endl; 36 ans++; //有满足的a b c,ans就不等于0 37 } 38 } 39 if(!ans) //没有满足的,输出No!!! 40 cout<<"No!!!"; 41 }
标签:
原文地址:http://www.cnblogs.com/geek-007/p/4417358.html