观察下面的加法算式:
祥 瑞 生 辉
+ 三 羊 献 瑞
-------------------
三 羊 生 瑞 气
(如果有对齐问题,可以参看【图1.jpg】)
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
思路:三是1,剩余全排列一一枚举就好。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int num[10] = {0,1,2,3,4,5,6,7,8,9};
do
{
if(num[4] != 1) continue;
int a = num[0]*1000+num[1]*100+num[2]*10+num[3];
int b = num[4]*1000 + num[5]*100 + num[6]*10 + num[1];
int c = num[4]*10000 + num[5] * 1000 + num[2] * 100 + num[1] * 10 + num[8];
if(a + b == c) cout<<b<<endl;
}while(next_permutation(num, num + 10));
return 0;
}