六角填數

如圖所示六角形中,填入1~12的數字。

使得每條直線上的數字之和都相同。

圖中,已經替你填好了3個數字,請你計算星號位置所代表的數字是多少?

package com.example.mygraph;

public class MyGraph {
	public static void main(String[] args) {
		int[] number = { 2, 4, 5, 6, 7, 9, 10, 11, 12 };
		for (int a = 0; a < number.length; a++) {
			for (int b = 0; b < number.length; b++) {
				for (int c = 0; c < number.length; c++) {
					for (int d = 0; d < number.length; d++) {
						for (int e = 0; e < number.length; e++) {
							for (int f = 0; f < number.length; f++) {
								for (int g = 0; g < number.length; g++) {
									for (int h = 0; h < number.length; h++) {
										for (int i = 0; i < number.length; i++) {
											int[] temp = { a, b, c, d, e, f, g, h, i };
											if (isEquality(temp)) {
												if (1 + number[a] + number[d] + number[f] == number[f] + number[g] + number[h] + number[i]
														&& number[f] + number[g] + number[h] + number[i] == 1 + number[b] + number[e] + number[i]
														&& 8 + number[d] + number[g] + 3 == 3 + number[h] + number[e] + number[c]
														&& 3 + number[h] + number[e] + number[c] == 8 + number[a] + number[b] + number[c]
														&& 8 + number[d] + number[g] + 3 == number[f] + number[d] + number[a] + 1) {

													System.out.println(number[a] + " " + number[b] + " " + number[c] + " " + number[d] + " "
															+ number[e] + " " + number[f] + " " + number[g] + " " + number[h] + " " + number[i]);
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}

	/**
	 * 判斷每層循環是否相等
	 * 
	 * @param temp
	 * @return
	 */
	public static boolean isEquality(int[] temp) {
		for (int i = 0; i < temp.length; i++) {
			for (int j = i + 1; j < temp.length; j++) {
				if (temp[i] == temp[j])
					return false;
			}
		}
		return true;
	}
}
答案:10
發佈了65 篇原創文章 · 獲贊 39 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章