题目描述
把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。
输入
无
输出
输出所有满足条件的三位数组合,按第一个数的升序顺序输出。
样例输出 Copy
192 384 576
…
#include<stdio.h>
#include<math.h>
int fun(int a,int b,int c)//判断三个数是否重复
{
int i,dight[10]={0};
while(a)
{
i=a%10;
dight[i]++;
a=a/10;//a的每一位储存到数组中,若不重复则数组中每个元素为零
}
while(b)
{
i=b%10;
dight[i]++;
b=b/10;//b的每一位储存到数组中,若不重复则数组中每个元素为零
}
while(c)
{
i=c%10;
dight[i]++;
c=c/10;//c的每一位储存到数组中,若不重复则数组中每个元素为零
}
for(i=1;i<=9;i++)//必须数组中所有元素都为1,才能保证不重复
{
if(dight[i]!=1)//说明存在重复的数字。
return 0;
}
return 1;
}
int main()
{
int m,n;
int i,j,k;
for(i=123;i<=329;i++)
{
j=i*2;
k=i*3;
if(fun(i,j,k))
printf("%d %d %d\n",i,j,k);
}
}
#include<stdio.h>
int main()
{
printf("192 384 576\n219 438 657\n273 546 819\n327 654 981");
}