标题:观察下面的加法算式:
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
思路分析:
首先,每个字代表一个数(0~9),由题可知,四位数+四位数=五位数,最高位肯定为1,也就是说,三
这个汉字所对应的数为1。
然后,将不同的汉字分别对应一个数组中一个元素,即
a[0]=祥 a[1]=瑞 a[2]=生 a[3]=辉 a[4]=羊 a[5]=献 a[6]=气
做题思路就是,将该数组进行全排列,以次拿三个数分别存这三个汉字做代表的数,若两者相加等于第三者,即结束,将三个数给以次输出找到,最后,将“三羊献瑞”所代表的4位数字给找到即可。
代码如下:
#include<iostream>
#include<algorithm>using namespace std;int main(){int x[]={0,1,2,3,4,5,6,7,8,9};int a,b,c;do{if(x[0]!=0){a=x[0]*1000+x[1]*100+x[2]*10+x[3];b=1000+x[4]*100+x[5]*10+x[1];//三 对应的数为1,千位上的数是 三 也就是1c=10000+x[4]*1000+x[2]*100+x[1]*10+x[6];//同理}if(a+b==c)break;}while(next_permutation(x,x+10));//将数组里的数进行全排列cout<<a<<endl;//输出祥瑞生辉cout<<b<<endl;//输出三羊献辉cout<<c<<endl;//输出三羊生辉气return 0;
}