- 问答
- 2019-06-04 13:49:27 @
// 判断快//
int tiao = 0;
for(int i=tiao;i<9;i+=3) {
for(int j=0;j<9;j+=3,tiao+=3) {
int []kuai=new int [9];
int shu =0;
for(int n=j;n<j+3;n++) {
for(int z=tiao;z<tiao+3;z++,shu++) {
kuai[shu]=shuzu[n][z];
}
}
if (panduan(kuai) == 0) {
System.out.print("sorry~");
break OUT;
}
}
System.out.print("Congrats!");
} // 判断快//
int tiao = 0;
for(int i=tiao;i<9;i+=3) {
for(int j=0;j<9;j+=3,tiao+=3) {
int []kuai=new int [9];
int shu =0;
for(int n=j;n<j+3;n++) {
for(int z=tiao;z<tiao+3;z++,shu++) {
kuai[shu]=shuzu[n][z];
}
}
if (panduan(kuai) == 0) {
System.out.print("sorry~");
break OUT;
}
}
System.out.print("Congrats!");
}
4 条评论
-
小熊 (wlnirvana) LV 8 MOD @ 2019-06-04 20:58:08
怎么不重要?你明显现在就是这里出的错。
我只看懂了你的
kuai
是一个一维数组,你想把每个小块拷进这个数组kuai
里面,然后利用函数做判断。是这个思路没错吧?具体怎么拷进去的,用的就是你那一大堆让人看不懂的循环变量。肯定就错在那6个变量相关的代码里面。
-
2019-06-04 20:52:38@
从70行到82行,你的
tiao
,i
,j
,shu
,n
,z
分别都是什么意思?变量名起得不好,让人看不懂。 -
2019-06-04 20:40:20@
import java.util.Scanner; import java.util.Arrays; /** * 数独 0. 1 2 3 4 5 6 7 8 9 1. [1, 2, 3, 4, 5, 6, 7, 8, 9] 2. [1, 2, 3, 4, 5, 6, * 7, 8, 9] 3. [1, 2, 3, 4, 5, 6, 7, 8, 9] 4. [1, 2, 3, 4, 5, 6, 7, 8, 9] 5. [1, * 2, 3, 4, 5, 6, 7, 8, 9] 6. [1, 2, 3, 4, 5, 6, 7, 8, 9] 7. [1, 2, 3, 4, 5, 6, * 7, 8, 9] 8. [1, 2, 3, 4, 5, 6, 7, 8, 9] 9. [1, 2, 3, 4, 5, 6, 7, 8, 9] * */ public class 计算结果 { public static int panduan(int[] a) { Arrays.sort(a); String str = Arrays.toString(a); if (str.equals("[1, 2, 3, 4, 5, 6, 7, 8, 9]")) { return 1; } else { return 0; } } public static void main(String[] args) { /** * 开始打印数独 * */ Scanner in = new Scanner(System.in); OUT: if (true) { int[] shudu = new int[9]; int[][] shuzu = new int[9][9]; // 读入九个数// for (int i = 0; i < 9; i++) { shudu[i] = in.nextInt(); } // 转换成二维数组// for (int i = 0; i < 9; i++) { String str = String.valueOf(shudu[i]); int[] chang = new int[9]; for (int k = 0; k < 9; k++) { chang[k] = Integer.parseInt(String.valueOf(str.charAt(k))); } for (int j = 0; j < 9; j++) { shuzu[i][j] = chang[j]; } if (panduan(chang) == 0) { System.out.print("sorry~"); break OUT; } } // panduan列// for (int i = 0; i < 9; i++) { int[] lie = new int[9]; for (int j = 8; j >-1; j--) { lie[j] = shuzu[i][j]; } if (panduan(lie) == 0) { System.out.print("sorry~"); break OUT; } } // 判断快// int tiao = 0; for(int i=tiao;i<9;i+=3) { for(int j=0;j<9;j+=3,tiao+=3) { int []kuai=new int [9]; int shu =0; for(int n=j;n<j+3;n++) { for(int z=tiao;z<tiao+3;z++,shu++) { kuai[shu]=shuzu[n][z]; } } if (panduan(kuai) == 0) { System.out.print("sorry~"); break OUT; } } System.out.print("Congrats!"); } } } }
-
2019-06-04 18:47:48@
请上传你的完整代码。
- 1