【藍橋杯】第六屆省賽Java語言B組-三羊獻瑞

【藍橋杯】04第六屆省賽Java語言B組題目:

三羊獻瑞

觀察下面的加法算式:

在這裏插入圖片描述

其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。

請你填寫“三羊獻瑞”所代表的4位數字(答案唯一),不要填寫任何多餘內容。

最終答案是:1085

這道題的解法不是很複雜,關鍵就是使用暴力法破解的時候條件的選擇比較麻煩。我做的時候都覺得有點眼花。。。

public class 三羊獻瑞 {
	public static void main(String[] args) {
		// 因爲每一個位都不相等,所以最小是1023,最大是9876
		for (int i = 1023; i < 9876; i++) {
			for (int j = 1023; j < 9876; j++) {
				int sum = i + j;
				if (sum > 10234 && sum <= 97654) {
					char[] a1 = String.valueOf(i).toCharArray();
					char[] a2 = String.valueOf(j).toCharArray();
					char[] a3 = String.valueOf(sum).toCharArray();

					// 判斷a1每一個位都不等
					if (a1[0] != a1[1] && a1[0] != a1[2] && a1[0] != a1[3] && a1[1] != a1[2] && a1[1] != a1[3]
							&& a1[2] != a1[3]) {
						// 判斷a2全不等
						if (a2[0] != a2[1] && a2[0] != a2[2] && a2[0] != a2[3] && a2[1] != a2[2] && a2[1] != a2[3]
								&& a2[2] != a2[3]) {
							// 判斷a3全不等
							if (a3[0] != a3[1] && a3[0] != a3[2] && a3[0] != a3[3] && a3[0] != a3[4] && a3[1] != a3[2]
									&& a3[1] != a3[3] && a3[1] != a3[4] && a3[2] != a3[3] && a3[2] != a3[4]
									&& a3[3] != a3[4]) {
								// 相等的位置
								if (a1[1] == a2[3] && a1[2] == a3[2] && a1[1] == a3[3] && a2[0] == a3[0]
										&& a2[1] == a3[1]) {
									// a1[0]不存在與a2和sum中,(祥不在其他兩個中);
									if (!String.valueOf(j).contains(String.valueOf(a1[0]))
											&& !String.valueOf(sum).contains(String.valueOf(a1[0]))) {
										// a1[3]不存在與a2和sum中,(輝不在其他兩個中);
										if (!String.valueOf(sum).contains(String.valueOf(a1[3]))
												&& !String.valueOf(j).contains(String.valueOf(a1[3]))) {
											// a3[4]不存在與a1和a2中,(氣不在其他兩個中);
											if (!String.valueOf(i).contains(String.valueOf(a3[4]))
													&& !String.valueOf(j).contains(String.valueOf(a3[4]))) {
												if (a1[2] != a2[2]) {
													System.out.println(" " + i);
													System.out.println("+" + j);
													System.out.println("-----");
													System.out.println(sum);
												}
											}
										}
									}

								}

							}
						}
					}

				}
			}
		}
	}
}

 9567
+1085
-----
10652
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章