解题思路:
注意事项:
参考代码:
import java.util.Scanner;
public class 九宫幻方1880 {
static int[] arr;
static int[] in;
static boolean bool=true;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
arr = new int[9];
in = new int[9];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
if (arr[i] != 0) {
in[arr[i] - 1] = 1;
}
}
dp(0);
if (bool) {
System.out.println("Too Many");
}
}
public static void dp(int t) {
if (t==9) {
int x1 = arr[0] + arr[1] + arr[2];
int x2 = arr[3] + arr[4] + arr[5];
int x3 = arr[6] + arr[7] + arr[8];
int y1 = arr[0] + arr[3] + arr[6];
int y2 = arr[1] + arr[4] + arr[7];
int y3 = arr[2] + arr[5] + arr[8];
int xy1 = arr[0] + arr[4] + arr[8];
int xy2 = arr[2] + arr[4] + arr[6];
if (x1 == x2 && x1 == x3 && x1 == y3 && x1 == y2 && x1 == y1
&& x1 == xy2 && x1 == xy1) {
System.out.println(arr[0] +" "+ arr[1]+" "+ arr[2]);
System.out.println(arr[3] +" "+ arr[4]+" "+ arr[5]);
System.out.println(arr[6] +" "+ arr[7]+" "+ arr[8]);
bool=false;
return;
}else {
return;
}
}
if (arr[t]!=0) {
dp(t+1);
return;
}
for (int i = 0; i < in.length; i++) {
if (in[i]==0) {
arr[t]=i+1;
in[i]=1;
dp(t+1);
in[i]=0;
arr[t]=0;
}
}
}
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:807 |
点我有惊喜!你懂得!浏览:1166 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:668 |
2005年春浙江省计算机等级考试二级C 编程题(3),复杂度最低的方法没有之一!!!!!浏览:856 |
C二级辅导-计负均正 (C语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:643 |
大小写转换 (C语言代码)浏览:904 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |
1124题解浏览:630 |