题目描述
把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。
输入
无
输出
输出所有满足条件的三位数组合,按第一个数的升序顺序输出。
样例输出
192 384 576
.........
//=192----<330
#include<stdio.h>
int IsStr(char b[])
{
int a[10] = {0};
for(int flag = 0; flag < 9; flag ++)
{
switch(b[flag])
{
case '1':
{
a[0]++;
break;
}
case '2':
{
a[1] ++;
break;
}
case '3':
{
a[2] ++;
break;
}
case '4':
{
a[3] ++;
break;
}
case '5':
{
a[4] ++;
break;
}
case '6':
{
a[5] ++;
break;
}
case '7':
{
a[6] ++;
break;
}
case '8':
{
a[7] ++;
break;
}
case '9':
{
a[8] ++;
break;
}
}
}
if (a[0] == 1 && a[1] == 1 && a[2] == 1 && a[3] == 1 && a[4] == 1 && a[5] == 1 && a[6] == 1 && a[7] == 1 && a[8] == 1)
{
return 1;
}
else
{
return -1;
}
}
int main()
{
char b[10] = {0};
for (int i = 192; i < 333; i++)
{
sprintf(b, "%d%d%d", i, i * 2, i * 3);//char类型 把指定结果输出到字符串中
if (IsStr(b) == 1)
{
printf("%d %d %d\n", i, i * 2, i * 3);
}
}
return 0;
}
|