嘛...题目就是1-9,九个数字,每个数字只能用一次,组成三个三位数,要求三个数的比为1:2:3。
暴力循环直接就可以过的~
PS:书上提示说这个题不用太动脑筋,所以我们直接无脑暴力即可
#include<stdio.h>
#include<string.h>
int main()
{
int a[10];
int s;
int flag;//创建一系列变量啦,数组用来存数字出现了几次,s用来存数字检查,flag则用来判断是否应该输出
for (int i = 100; i < 334; i++)//因为最大的数字不能超过一千,所以这里最小的数字不能超过333
{
flag = 1;//一开始flag每次循环都初始化为1即可
memset(a, 0, sizeof(a));//快速初始化
for (int j = 1; j < 4 && flag; j++)//一到三倍的数字检查
{
s = j*i;
while (s > 0)
{
a[s % 10]++;
if (a[s % 10] > 1)//如果数字重复,那么对应位置的计数肯定是要大于一的,所以这里直接就可以给它弄成flag=0
{
flag = 0;
break;
}
s /= 10;
}
}
if (flag == 0)
{
continue;//如果flag为0直接进行下一次循环
}
else
{
printf("%d %d %d\n", i, i * 2, i * 3);//当然如果flag2为1的话就输出啦~
}
}
return 0;
}