九宫格Java的两种方式表示
九宫格
行越界,列不越界
列越界,行不越界
行和列都越界
右上角有值
import java.util.Scanner;
public class Jiu {
/**
* 方法一
* 九宫格
* 行越界,列不越界
* 列越界,行不越界
* 行和列都越界
* 右上角有值
*
* 行、列、对角线和相等
*/
static void output(int m,int[][] arry){
System.out.println("九宫格为:");
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
System.out.print(arry[i][j]+"\t");
}
System.out.println("\n");
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入要设置的九宫格格式(仅为奇整数):");
int n;
n=sc.nextInt();
if(n<0||n%2==0){
System.out.println("输入错误,请重新输入:");
n=sc.nextInt();
}
int[][] arry =new int[n][n];
int r=0,l=n/2;
for(int i=1;i<=n*n;i++){
arry[r][l] = i;
r--;
l++;
// 行列都越界
if (r < 0 && l >= n) {
l--;
r += 2;
}
// 行越界
else if (r < 0) {
r = n - 1;
}
// 列越界
else if (l >= n) {
l = 0;
}
// 值不能为0
else if (arry[r][l] != 0) {
l--;
r += 2;
}
}
output(n,arry);
}
}
/*
* 方法二
*/
// int[][] arry =new int[3][3];
// int a=2;
// int b=3/2;
// for(int i=1;i<=9;i++){
// arry[a++][b++]=i;
// if(i%3==0){
// a-=2;
// b-=1;
// }
// else{
// a%=3;
// b%=3;
// }
// }
// for(int i=0;i<3;i++){
// for(int j=0;j<3;j++){
// System.out.print(arry[i][j]);
// }
// System.out.println("\n");
// }
// }
//}