蓝桥杯2015第六届C语言B组省赛习题题解——习题C.三羊献瑞

每日刷题(十五)

蓝桥杯第六届C语言B组省赛习题

习题C:三羊献瑞

在这里插入图片描述
图1.jpg
在这里插入图片描述
首先可以想到“三”代表数字1,因为十进制数相加,满十进一,这里我设“羊”,“献”,“瑞”这三个分别用a,b,c代替,“祥”,“生”,“辉”,“气”分别用d,e, f, g代替。需要满足dcef + 1abc = 1aecg的条件,嵌套循环可以得到答案
在这里插入图片描述
详细C代码如下

#include<stdio.h>

int main()
{
	int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0;	//dcef + 1abc = 1aecg
	for(d = 0; d <= 9; d++)
	{	
		if(d == 1)
			d++;
		for(c = 0; c <= 9; c++)
		{
			while(c == d || c == 1)
			{				
				c++;
			}
			if(c == 10)
				break;
			for(e = 0; e <= 9; e++)
			{
				while(e == c || e == d || e == 1)
				{					
					e++;
				}
				if(e == 10)
					break;
				for(f = 0; f <= 9; f++)
				{
					while(f == 1 || f == c || f == d || f == e)
					{						
						f++;
					}	
					if(f == 10)
						break;					
					for(a = 0; a <= 9; a++)
					{
						while(a == 1 || a == c || a == d || a == e || a == f)
						{							
							a++;
						}
						if(a == 10)
							break;
						for(b = 0; b <= 9; b++)
						{
							while(b == 1 || b == c || b == d || b == e || b == f || b == a)
							{								
								b++;
							}
							if(b == 10)
								break;
							for(g = 0; g <= 9; g++)
							{
								while(g == 1 || g == c || g == d || g == e || g == f || g == a || g == b)
								{
									g++;
								}	
								if(g == 10)
									break;
								if(d * 1000 + c * 100 + e * 10 + f + 1000 + a * 100 + b * 10 + c == 10000 + a * 1000 + e * 100 + c * 10 + g)
								{
									printf("%d%d%d%d\n",1,a,b,c);
									printf("%d %d %d %d + 1 %d %d %d = 1 %d %d %d %d \n",d,c,e,f,a,b,c,a,e,c,g);
								}
									
							}
						}
					}
				}
			}
		}
	}
	return 0;
}

运行结果
在这里插入图片描述
所以三羊献瑞所代表的四位数字为1085

如果喜欢我的文章,请记得三连哦,点赞关注转发,欢迎各位志同道合的IT友人在评论区讨论交流,感谢您的支持,下期更精彩!!!

发布了40 篇原创文章 · 获赞 7 · 访问量 3121

猜你喜欢

转载自blog.csdn.net/qq_44631615/article/details/104348215