九宫格程序

CODE:

import java.util.Scanner;

public class TestNine {

 public  static    int    getNumber(){
   //接收用户输入
  Scanner  scan = new Scanner(System.in);
  System.out.println("请输入您要创建九宫格的数量 n  >>>");
  int  n = scan.nextInt();
  if(n%2==0){
   System.out.println("输入数据必须为奇数");
   return  3;
  }else{
         return n;
  }
 }
 
 
 public  static   void  print(int [][] 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();
  }
  
 }
 
 
 
 public   static    void  init(int [][] arr){
  int n = arr.length;
  //填充数据,初始化二维数组
  int  x = 0;
  int  y = arr.length/2;
  
        for(int data = 1; data<=n*n; data++){
         
         arr[x][y] = data;
         //斜向上走
         x--;
         y++;
         //判断 x 和 y 是否越界
         //1. x 越界,y 不越界
         if(x==-1 && y<n ){
          x = n-1;
         }
         
         //2.y 越界,x 不越界
         if( y==n && x>=0 ){
          y = 0;
         }
         
         //3. x y 都越界  上方数据格已经被占
         if((x ==-1 && y == n) ) {
          x += 2;
          y--;
         }
         
         if( arr[x][y] !=0 ) {
          x += 2;
          y--;
         }
      
        }
 }
 
 
 public static void main(String[] args) {
  
       int  n = getNumber();
   
       int  [][] arr = new int[n][n];
   
       init(arr);
   
    print(arr); 
    
 }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值