啊哈算法,枚举实现10以内加法等式,c语言实现
#include <stdio.h>
int main()
{
int a[9], i, total = 0, book[9], sum;
for (a[0] = 1; a[0] <= 9; a[0]++)
for (a[1] = 1; a[1] <= 9; a[1]++)
for (a[2] = 1; a[2] <= 9; a[2]++)
for (a[3] = 1; a[3] <= 9; a[3]++)
for (a[4] = 1; a[4] <= 9; a[4]++)
for (a[5] = 1; a[5] <= 9; a[5]++)
for (a[6] = 1; a[6] <= 9; a[6]++)
for (a[7] = 1; a[7] <= 9; a[7]++)
for (a[8] = 1; a[8] <= 9; a[8]++)
{
for (i = 0; i < 9; i++)
book[i] = 0;
for (i = 0; i < 9; i++)
book[a[i] - 1] = 1;
sum = 0;
for (i = 0; i < 9; i++)
sum += book[i];
if (sum == 9 && a[0] * 100 + a[1] * 10 + a[2] + a[3] * 100 + a[4] * 10 + a[5] == a[6] * 100 + a[7] * 10 + a[8])
{
total++;
printf("%d%d%d + %d%d%d = %d%d%d\n", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);
}
}
printf("total = %d", total / 2);
return 0;
}