求奇数阶幻方的详细原理及实现方法(下面代码关键部分,本人看不懂,请求高手讲解,谢谢!)

import java.util.Scanner;


public class TwoArray_03 {
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入~");
  int n = sc.nextInt();
  if(n%2==0){    
   System.out.println("请输入奇数");
   return;
  }
  int array[][] = new int[n][n];  
  int a = n-1;    
  int b = n/2;    
  for(int i=1;i<=n*n;i++){
   array[a++][b++]=i;  
   if(i%n==0){   
    a=a-2;   
    b=b-1;
   }else{    
    a=a%n;
    b=b%n;
   }
  }
  System.out.println(n+"阶幻方如下:");
  for(int i=0;i<n;i++){   
   for(int j=0;j<n;j++){
    System.out.print(" "+array[i][j]);
   }
   System.out.println();
  }
 }
}


collinton
浏览 1589回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java