三羊献瑞
观察下面的加法算式:
祥 瑞 生 辉
+ 三 羊 献 瑞
-------------------
三 羊 生 瑞 气
(如果有对齐问题,可以参看【图1.jpg】)
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
#include<iostream> #include<algorithm> using namespace std; int main() { int a[] = {0,1,2,3,4,5,6,7,8,9}, c,d,e; do { if(a[0] != 0 && a[4] != 0) { c = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3]; d = a[4] * 1000 + a[5] * 100 + a[6] * 10 + a[1]; e = a[4] * 10000 + a[5] * 1000 + a[2] * 100 + a[1] *10 + a[7]; if(c+d == e) break; } }while(next_permutation(a,a+10)); cout << d <<endl; }
直接暴力模拟,刚开始没去想 三 是可以算出来了的,两个4位数相加,得到一个5位数,他的最高位一定是1.应该还能更简洁点。