#include <stdio.h>
//习题2-6 豆包方案
//核心算法,对拆掉的三位数在数组位置用1进行标记,最后计算这些1是否等于9
//豆包bug重复数字出现也会标记,标记时要去重
int main()
{
int x, y, z;
int arr[10];
for (int i = 123; i <= 329; i++)
{
x = i;
y = x * 2;
z = x * 3;
for (int i = 0; i < 10; i++)
arr[i] = 0;
if (!arr[x / 100] && !arr[x / 10 % 10] && !arr[x % 10])
arr[x / 100] = arr[x / 10 % 10] = arr[x % 10] = 1;
else continue;
if (!arr[y / 100] && !arr[y / 10 % 10] && !arr[y % 10])
arr[y / 100] = arr[y / 10 % 10] = arr[y % 10] = 1;
else continue;
if (!arr[z / 100] && !arr[z / 10 % 10] && !arr[z % 10])
arr[z / 100] = arr[z / 10 % 10] = arr[z % 10] = 1;
else continue;
int sum = 0;
for (int i = 1; i < 10; i++)
{
sum += arr[i];
if(sum == 9)
printf("%d %d %d\n", x, y, z);
}
}
return 0;
}