数独(奇)
import java.util.Arrays;
import java.util.Scanner;
/**
* @Author: lishi
* @Description:
* @Date: Create in 21:05 2018/11/17
*/
public class sudoku {
public static int[][] fun(int[][] arr,int row) {
/*int h = 0,l = 0;
for(int i = 1;i <= (row*row);i++){
if(i==1){
h=0;
l=1;
arr[h][l]=1;
}else{
h=(h+(row-1))%row;
l=(l+1)%row;
if(arr[h][l]==0) {
arr[h][l] = i;
}else{
h=(h+2)%row;
l=(l+(row-1))%row;
arr[h][l] = i;
}
}
}*/
int h=0,l=row/2;
arr[h][l]=1;
for(int i = 2; i<=row*row;i++){
if(arr[(h-1+row)%row][(l+1)%row]!=0){
h=(h+1)%row;
}else{
h=(h-1+row)%row;
l=(l+1)%row;
}
arr[h][l]=i;
}
return arr;
}
public static void main(String[] args) {
System.out.println("请输入行列数:");
Scanner scanner = new Scanner(System.in);
int row = scanner.nextInt();
int[][] arr = new int[row][row];
System.out.println(Arrays.deepToString(arr));
fun(arr,row);
System.out.println(Arrays.deepToString(arr));
for(int i = 0;i < arr.length;i++){
for(int j = 0;j < arr[i].length;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
fun方法中注释块内为根据数独数学规则写的初级版,主要体现了作者的思考过程,语句写的太过繁杂,在此仅作为一个参考。