题目叙述:
观察下面的加法算式:
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
输出格式:
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
法一:
通过数学的角度来做题
为了大家更好理解数学思考这个过程我找到了其他作者的视频可以看一下:1259 [蓝桥杯2015初赛]三羊献瑞【算法:数学】_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1hh411Z7aX?spm_id_from=333.999.0.0
法二:
从编程的角度看:
#include <iostream>
#include <algorithm>
using namespace std;
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int main(){
do{
int s1, s2, s3;
if (a[4]!=0){//s2是一个四位数
s1 = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
s2 = a[4] * 1000 + a[5] * 100 + a[6] * 10 + a[1];
s3 = a[4] * 10000+ a[5] * 1000 + a[2] * 100 + a[1] * 10+ a[7];
}
if (s1 + s2 == s3){
cout << s2 << endl;
break;
}
}
while (next_permutation(a, a + 10));
return 0;
}
最好先看数学方式的做题,再看代码就更清楚明白了;

358

被折叠的 条评论
为什么被折叠?



