2015年蓝桥杯省赛c语言b组 三羊献瑞

三羊献瑞

观察下面的加法算式:在这里插入图片描述

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的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

猜你喜欢

转载自blog.csdn.net/qq_46724903/article/details/113849808