package A类有价值的回顾的;
/*0 1 2
*3 4 5
*6 7 8
*9 10 11
*
*/
public class 寒假作业 {
public static boolean[] a = new boolean[14];//biaoji 1-13
public static int[] c = new int[12];
public static int m = 0;
public static boolean fa(int b){
//不是b==2,这是进入下一层进行判断的
if(b == 3 && c[0] + c[1] != c[2]) return false;
if(b == 6 && c[3] - c[4] != c[5]) return false;
if(b == 9 && c[6] * c[7] != c[8]) return false;
if(b == 12 && c[9] != c[10]*c[11]) return false;
//c[9] / c[10] != c[11]是不对的,的确能整除时是可以的,但是像11/8 = 1也是相等的,没有普遍性
return true;
}
public static void f(int b){
if(fa(b) == false) return;
if(b == 12){
for(int j=0;j<c.length;j++){
System.out.print(c[j]+" ");
if(j%3==2)
System.out.println();
}
m++;
System.out.println("===========");
return;
}
for(int i=1;i<=13;i++){
if(a[i] == false){
a[i] = true;
c[b] = i;
f(b+1);
c[b] = 0;
a[i] = false;
}
}
}
public static void main(String[] args){
f(0);
System.out.println(m);
}
}
/*
* 寒假作业
现在小学的数学题目也不是那么好玩的。
看看这个寒假作业:
□ + □ = □
□ - □ = □
□ × □ = □
□ ÷ □ = □
(如果显示不出来,可以参见【图1.jpg】)
每个方块代表1~13中的某一个数字,但不能重复。
比如:
6 + 7 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5
以及:
7 + 6 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5
就算两种解法。(加法,乘法交换律后算不同的方案)
你一共找到了多少种方案?
*/
寒假作业.java
最新推荐文章于 2023-01-26 13:33:06 发布