一.题目描述
观察下面的加法算式:
祥 瑞 生 辉
+ 三 羊 献 瑞
-------------------
三 羊 生 瑞 气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
二.思路分析
直接暴力。
三肯定是数字1,可以直接确定。
祥:a ;瑞:b ;生:c ;辉:d ;
三:1 ;羊:e ;献:f ;瑞:b;
三:1 ;羊:e ;生:c ;瑞:b ;气:g;
return直接结束整个程序
三.代码
public class test1 {
public static void main(String[] args){
int a=0,b=0,c=0,d=0,e=0,f=0,g=0;
for(a=0;a<10;a++){
for(b=0;b<10;b++){
for(c=0;c<10;c++){
for(d=0;d<10;d++){
for(e=0;e<10;e++){
for(f=0;f<10;f++){
for(g=0;g<10;g++){
//每个数字都不相等,且每个数字都不等于1【由题目可知汉字三对应的数字为:1】
if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&c!=d&&c!=e&&c!=f&&c!=g&&d!=e&&d!=f&&d!=g&&e!=f&&e!=g&&f!=g){
if(a!=1&&b!=1&&c!=1&&d!=1&&e!=1&&f!=1&&g!=1){
int sum1=a*1000+b*100+c*10+d;
int sum2=1000+e*100+f*10+b;
int sum=10000+e*1000+c*100+b*10+g;
if(sum1+sum2==sum){
System.out.println(sum1); //9567 祥 瑞 生 辉
System.out.println(sum2); //1085 三 羊 献 瑞
System.out.println(sum); //10652 三 羊 生 瑞 气
return;//结束整个程序的运行
}
}
}
}
}
}
}
}
}
}
}
}