题目描述
将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。
//感谢黄小U饮品完善题意
输入输出格式
输入格式:
三个数,A B C。
输出格式:
若干行,每行3个数字。按照每行第一个数字升序排列。
输入输出样例
输入样例#1:
1 2 3
输出样例#1:
192 384 576219 438 657273 546 819327 654 981
说明
保证A<B<C
思路:模拟
#include#include #include #include using namespace std;int a,b,c,num;int vis[10];int main(){ scanf("%d%d%d",&a,&b,&c); for(int i=1;i<=9;i++) for(int j=1;j<=9;j++){ if(i==j) continue; for(int k=1;k<=9;k++) if(i!=j&&j!=k&&i!=k){ memset(vis,0,sizeof(vis)); int A=i*100+j*10+k; if(A==176) int hh=0; int B=A*b/a,C=A*c/a; int flag1=0,flag2=0; vis[0]=vis[i]=vis[j]=vis[k]=1; while(B){ if(vis[B%10]){ flag1=1;break; } else vis[B%10]=1; B/=10; } while(C){ if(vis[C%10]){ flag2=1;break; } else vis[C%10]=1; C/=10; } if(!flag1&&!flag2) num++,cout< <<" "<