题目描述
把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。
输入
无
输出
输出所有满足条件的三位数组合,按第一个数的升序顺序输出。
样例输出192 384 576
219 438 657
…
#include<stdio.h>
int panduan(int a,int b,int c);
int main(){
int q;
for(q=123;q<333;q++){
int p=q*2;
int m=q*3;
if(panduan(q,p,m)==1)
printf("%d %d %d\n",q,p,m);
}
return 0;
}
int panduan(int a,int b,int c){
int p[9]={0};
while(a){
p[a%10-1]++;
a/=10;
}
while(b){
p[b%10-1]++;
b/=10;
}
while(c){
p[c%10-1]++;
c/=10;
}
for(int i=0;i<9;i++)
if(p[i]==0||p[i]>1)
return 0;
return 1;
}