三羊献瑞
观察下面的加法算式:
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
分析:
不难发现题目中明显的说明了,不同的汉字代表的数字是不同的。所以一共有祥、瑞、生、辉、三、羊、献、气。并且“祥”和“三”代表的数字一定不为0,则我们将八个字分别用变量a,b,c,d,e,f,g,h来表示。我们需要求的就是e,f,g,b四个数。我们可以使用暴力的放来来进行解答,将每个变量从0~9开始进行遍历。
#include<stdio.h>
int main()
{
int a,b,c,d,e,f,g,h;
for(a=1;a<10;a++)
{
for(b=0;b<10;b++)
{
if(a!=b) //在进行判断每一个数都互不相同
{
for(c=0;c<10;c++)
{
if((a!=c)&&(b!=c))
{
for(d=0;d<10;d++)
{
if((a!=d)&&(b!=d)&&(c!=d))
{
for(e=1;e<10;e++)
{
if((a!=e)&&(b!=e)&&(c!=e)&&(d!=e))
{
for(f=0;f<10;f++)
{
if((a!=f)&&(b!=f)&&(c!=f)&&(d!=f)&&(e!=f))
{
for(g=0;g<10;g++)
{
if((a!=g)&&(b!=g)&&(c!=g)&&(d!=g)&&(e!=g)&&(f!=g))
{
for(h=0;h<10;h++)
if((a!=h)&&(b!=h)&&(c!=h)&&(d!=h)&&(e!=h)&&(f!=h)&&(g!=h))
{
if(a*1000+b*100+c*10+d+e*1000+f*100+g*10+b==e*10000+f*1000+c*100+b*10+h) //判断两个题目中所给四位数相加是否等于所给的五位数
printf("%d%d%d%d\n",e,f,g,b); //输出加数“三羊献瑞”所代表的数字
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return 0;
}
答案:
1085