三羊献瑞(结果填空)
观察下面的加法算式:
祥 瑞生 辉
+ 三羊 献 瑞
-------------------
三 羊 生 瑞 气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
思路:循环遍历每一个汉字代表的数字。
即可转换为
a b c d
+ e f g b
-------------
e f c b h
答案为:1085
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d,e,f,g,h;
int num1,num2,num3;
//int sum=0;
for(a=1; a<10; a++)
{
for(b=0; b<10; b++)
{
for(c=0; c<10; c++)
{
for(d=0; d<10; d++)
{
for(e=1; e<10; e++)
{
for(f=0; f<10; f++)
{
for(g=0; g<10; g++)
{
if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g &&b!=c&&b!=d&&b!=e&&b!=f&&b!=g &&c!=d&&c!=e&&c!=f&&c!=g &&d!=e&&d!=f&&d!=g &&e!=f&&e!=g&&f!=g)
{//判断a b c d e f g各不相等时要写仔细,不要有遗漏
num1=a*1000+b*100+c*10+d;
num2=e*1000+f*100+g*10+b;
num3=num1+num2;
h=num3%10;
if(h!=a&&h!=b&&h!=c&&h!=d&&h!=e&&h!=f&&h!=g)//h是通过计算得来的,h也不能与acdefg中的任何一个相同
{
if(num3/10000==e &&(num3/1000)%10==f &&(num3/100)%10==c &&(num3/10)%10==b &&num3%10==h)
{
//sum++;
// printf("%d%d%d%d\n",a,b,c,d);
printf("%d%d%d%d\n",e,f,g,b);
//printf("%d%d%d%d%d\n",e,f,c,b,h);
//printf("****************\n");
}
}
}
}
}
}
}
}
}
}
//printf("%d",sum);
return 0;
}