如图所示六角形中,填入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