蓝桥杯---三羊献瑞

观察下面的加法算式:

蓝桥杯---三羊献瑞_第1张图片

其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

答案

蓝桥杯---三羊献瑞_第2张图片

代码

public class _03三羊献瑞 {
    public static void main(String[] args) {
        //c == 生   b == 瑞   g == 献    d == 辉   i == 气
        for (int b = 2; b < 9; b++) { //数字不同,所以b、d、g、c不等于1
            for (int d = 2; d < 9; d++) {
                if (b == d){continue;}//数字不同
                for (int g = 2; g < 9; g++) {
                    if (g == b || g == d){continue;}
                    int c = b + 1;
                    if (c == b || c == d || c == g){continue;}
                    if (c + g <= 10){continue;}//c + g > 10
/*
           9    b   c   d
       +   0    0   g   b
       --------------------
       1   0    c   b   i
 */
                    int sum = 9000 + b * 100 + c * 10 + d + 1000 + g * 10 + b;
                    for (int i = 2; i < 9; i++){
                        if (i == b || i == d || i == g || i == c){continue;}
                        if(sum <= (10000 + c * 100 + b * 10 + i) && sum >= (10000 + c * 100 + b * 10 + i)){
                            System.out.printf("%2d%d%d%d\n",9,b,c,d);
                            System.out.printf("%2d%d%d%d\n",1,0,g,b);
                            System.out.printf("%d\n",sum);
                            System.out.println("-------\n");
                        }
                    }
                }
            }
        }
    }
}

分析

要求:求出三羊献瑞所代表的数字,即算式的第二行。

注意:进位只能进1位。

蓝桥杯---三羊献瑞_第3张图片

仔细观察算式,祥+三--->进位--->三=1--->祥=9,羊=0

蓝桥杯---三羊献瑞_第4张图片

瑞+0=生--->生=瑞+1;生+献>10;

因此,在枚举的时候,只用枚举辉 瑞  献

你可能感兴趣的:(蓝桥杯,java,算法,开发语言)