目录
因为我个人做选择题有把所有可能性列举的习惯,所以我习惯性列举一下,发现答案并不像题目里面说的,三羊献瑞是唯一的。具体看我的测试用例
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
观察下面的加法算式:
祥 瑞 生 辉
+ 三 羊 献 瑞
-------------------
三 羊 生 瑞 气
其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你输出“三羊献瑞”所代表的 4 位数字(答案唯一)。
题目分析:
先看三, 四位数相加最大值也就是19998,所以三只能是1,接下来全部暴力遍历即可。
测试用的代码(Java):
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Demo {
public static void main(String[] args) {
//填空题嘛,遇事不决,暴力枚举
/*
相同的汉字代表相同的数字,先捋一下
A B C D + E F G B = E F C B H
直接双层for走你
*/
for(int a = 0 ;a<10;a++){
for(int b = 0;b<10;b++){
for(int c = 0;c<10;c++){
for(int d = 0;d<10;d++){
for(int e = 1;e<10;e++){
for(int f = 0;f<10;f++){
for(int g = 0;g<10;g++){
for(int h = 0;h<10;h++){
//先判断结果是否相同
if( (a*1000+b*100+c*10+d)+(e*1000+f*100+g*10+b) == (e*10000+f*1000+c*100+b*10+h) ){
//满足条件,在判断数字是否相同
//a
if(a!=b && a!=c && a!=d && a!=e && a!=f && a!=g && a!=h){
//b
if(b!=c && b!=d && b!=e && b!=f && b!=g && b!=h){
//c
if(c!=d && c!=e && c!=f && c!=g && c!=h){
//e
if(e!=f && e!=g && e!=h){
//f
if(f!=g && f!=h){
//g
if(g!=h){
System.out.println("-----------------------");
System.out.println("例子是:ABCD+EFGH=EFCBH");
System.out.println("算式是:"+a+b+c+d+"+"+e+f+g+b+"="+e+f+c+b+h);
//输出三羊献瑞,也就是EFGB
System.out.println("答案是:"+e+""+f+""+g+""+b);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
答案:
因为我个人做选择题有把所有可能性列举的习惯,所以我习惯性列举一下,发现答案并不像题目里面说的,三羊献瑞是唯一的。具体看我的测试用例
Test:
如果是我脑抽了,欢迎大家留言指出哈~
但是结果呢?
1084,error.
1085,AC.
1086,error
我看不懂,但是我大受震撼。