[第六届蓝桥杯省赛C++B组]三羊献瑞

题目来源:第六届蓝桥杯省赛C++B组

算法标签:全排列

题目描述:

观察下面的加法算式:

在这里插入图片描述

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

题目答案:

1085

题目思路:

八个汉字代表不同的数字,只要等式成立即可输出。
且所有的单个数字由题目自然限定为0-9,则我们用数组做出表达式之后使用全排列即可。

题目代码:

#include <iostream>
#include <algorithm>

using namespace  std;
int a[10];

int main()
{
	for (int i = 0; i < 10; i++)a[i] = i;
	do
	{
		if (!a[0] || !a[4])continue;//祥、三不能为0
		int t1 = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];//祥瑞生辉
		int t2 = a[4] * 1000 + a[5] * 100 + a[6] * 10 + a[1];//三羊献瑞
		int t3 = a[4] * 10000 + a[5] * 1000 + a[2] * 100 + a[1] * 10 + a[7];//三羊生瑞气
		if (t1 + t2 == t3)
		{
			cout << t2;
			break;
		}
	} while (next_permutation(a, a + 10));
	return 0;
}


发布了155 篇原创文章 · 获赞 18 · 访问量 3927

猜你喜欢

转载自blog.csdn.net/weixin_43910320/article/details/105061143