怎样编写一个优美和式

来源:百度知道 编辑:UC知道 时间:2024/05/21 12:19:20
在等式 中,若数字0,1,2,3,4,5,6,7,8,9在a,b,c三个数中出现一次且只出现一次,这样的等式为优美和式,如:56+1987=2043,743+859=1602均为优美和式。设计程序求出所有的优美和式,并统计出优美和式的个数。

可能形式是a2b4c4和a3b3c4. 共有132个优美和式。
132个中包括了 a3 + b3 和 b3 + a3 即两数互换了位置的结果。
132个中没有包括 b4 + a2 的结果, 即两数互换位置的结果. 若加入,则增加 36种。

程序里在第一个打印语句下面加入下面两行即可.
(累加器加1,b和a 输出位置换一下)
n = n + 1;
printf("%d: %d+%d=%d\n",n,b,a,c);

C语言程序:
#include <stdio.h>
#include <stdlib.h>

main()
{
int a, b, c,i,j,n;
int ai[3],bi[4],ci[4];
// a2 b4 c4
n = 0;
for (a=10;a<=98;a++){
ai[0] = a / 10; ai[1] = a - ai[0] * 10;
if (ai[0] == ai[1]) goto Lab1;
for (b=1000;b<=9876;b++){
c = a + b;
if (c < 1000 || c >= 10000) goto Lab2;
bi[0] = b / 1000; bi[1] = (b - bi[0] * 1000) / 100;
bi[2] = (b - bi[0]*1000 - bi[1]*100) / 10;
bi[3] = b - bi[0] * 1000 - bi[1] * 100 -bi[2] * 10;
ci[0] = c / 1000; ci[1] = (c - ci[0] * 1000) / 100;
ci[2] = (c - ci[0]*1000 - ci[1]*100) / 10;
ci[3] = c - ci[0] * 1000 - ci[1] * 100 -