题面
观察下面的加法算式:
祥 瑞 生 辉
+ 三 羊 献 瑞
-------------------
三 羊 生 瑞 气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你输出“三羊献瑞”所代表的 4 位数字(答案唯一)。
题解
枚举,全排列
由题,共有8个不同的汉字,分别用 a[1...8]
代表其,如下式子:
a[1] a[2] a[3] a[4]
+ a[5] a[6] a[7] a[2]
---------------------------
a[5] a[6] a[3] a[2] a[8]
而这八个数是由 0 - 9 中的 8 个数字组成的,直接枚举每个 a[i]
代表的数字即可,再每种情况下判断其组成的数是否能满足上述式子。
答案:
1085
代码
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
do {
if (a[1] == 0 || a[5] == 0) continue;
int up = a[1] * 1000 + a[2] * 100 + a[3] * 10 + a[4];
int down = a[5] * 1000 + a[6] * 100 + a[7] * 10 + a[2];
int res = a[5] * 10000 + a[6] * 1000 + a[3] * 100 + a[2] * 10 + a[8];
if (up + down == res) {
cout << down << endl;
break;
}
} while (next_permutation(a, a + 10));
return 0;
}
标题: | 2015年第六届蓝桥杯省赛-C. 三羊献瑞 |
---|---|
链接: | https://www.fightingok.cn/detail/174 |
更新: | 2022-09-18 22:45:23 |
版权: | 本文采用 CC BY-NC-SA 3.0 CN 协议进行许可 |