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