【蓝桥杯】2015年第六届蓝桥杯省赛真题-Java语言B组-3-三羊献瑞

三羊献瑞

观察下面的加法算式:

      祥 瑞 生 辉
  +   三 羊 献 瑞
-------------------
   三 羊 生 瑞 气

(如果有对齐问题,可以参看【图1.jpg】)

在这里插入图片描述

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

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

分析:直接枚举…

代码实现:

public class Main {

	/**
    a b c d
  + e f g h
-------------------
  e f c h i
	 */
	
	public static void main(String[] args) {
		for (int a = 1; 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++) {
										int x = 1000 * a + 100 * b + 10 * c + d;
										int y = 1000 * e + 100 * f + 10 * g + b;
										int z = 10000 * e + 1000 * f + 100 * c + 10 * b + h;
											
										if(x + y == z) {
											if (a == b || a == c || a == d || a == e || a == f|| a == g|| a == h
													|| b == c || b == d || b == e || b == f|| b == g|| b == h
													|| c == d || c == e || c == f|| c == g|| c == h
													|| d == e || d == f|| d == g|| d == h
													|| e == f|| e == g|| e == h
													|| f == g|| f == h
													|| g == h
													) {
												continue;
											} else {
												System.out.print(e);
												System.out.print(f);
												System.out.print(g);
												System.out.println(b);
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

答案:1085

猜你喜欢

转载自blog.csdn.net/allyyhh/article/details/88641399