头像

Cyan

四川成都

深度强化学习炼丹师

2015年第六届蓝桥杯省赛-C. 三羊献瑞

2015年第六届蓝桥杯省赛-C. 三羊献瑞

2021-12-16 · 60次阅读 · 原创 · 数据结构与算法

原题链接

题面

观察下面的加法算式:

      祥 瑞 生 辉
  +   三 羊 献 瑞
-------------------
   三 羊 生 瑞 气

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

请你输出“三羊献瑞”所代表的 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 协议进行许可