算了90分钟的一道题...
程序代码:/*
1. 给定等式 A B C D E 其中每个字母代表一个数字,且不同数字对应不
D F G 同字母。编程求出这些数字并且打出这个数字的
+ D F G 算术计算竖式。
───────
X Y Z D E
思路是:先将简单的几个数字推出来, b = 9 f = 5 g = 0 y = 1 ,其他的数用循环一个个地组合,
从2~8,然后去掉相同的。最好判断是否合题意。
*/
# include <stdio.h>
# include <conio.h>
void acount (void)
{
int a, b = 9, c, d, e, f = 5, g = 0, x, y = 1, z;
for (a = 2; a < 9; a++) //第一层循环
for (c = 2; c < 9; c++) //第二层循环
if (a == c || a == 5 ) //判断是否重复
continue; // 如果重复则跳过
else
for (d = 2; d < 9; d++) // 第三层循环
if (d == a || d == c || d == 5)
continue;
else
for (e = 2; e < 9; e++)
if (e == a || e == c || e == d || e == 5 )
continue ;
else
for (x = 2; x < 9; x++)
if (x == a || x == c || x == d || x == e || x == 5)
continue;
else
{
z=45-a-b-c-d-e-f-g-x-y; //求出z
if (a*10000+b*1000+c*100+d*10+e + d*100+f*10+g+d*100+f*10+g == x*10000+y*1000+z*100+d*10+e && z != e) //判断是否合题意
{
printf(" %d %d %d %d %d\n", a, b, c, d, e); //按格式输出
printf(" %d %d %d\n", d, f, g);
printf("+ %d %d %d\n", d, f, g);
printf("_____________________________\n");
printf(" %d %d %d %d %d\n", x, y, z, d, e);
printf("\n");
}
}
}
int main (void)
{
acount(); //执行函数
getch();
return 0;
}
/*
vc++6.0
-------------------
2 9 7 8 6
8 5 0
+ 8 5 0
_______________
3 1 4 8 6
-------------------
*/









