幻方问题

来源:互联网 发布:virtualbox5.0.10 mac 编辑:程序博客网 时间:2024/04/27 22:24

 

对平面魔方的构造,分为三种情况:N为奇数、N为4的倍数、N为其它偶数(4n+2的形式)

 

 其中 N 为奇数时,最简单

 

horse法生成奇阶幻方

  先在任意一格内放入1。向左走1步,并下走2步放入2(称为马步),向左走1步,并下走2步放入3,依次类推放到n。在n的下方放入n+1(称为跳步),再按上述方法放置到2n,在2n的下边放入2n+1。

 

代码如下

 import java.util.Scanner;

public class Main8 {

 /**
  * @param args
  */
 public static void main(String[] args) {
  
  Scanner cin = new Scanner(System.in);
        int N = cin.nextInt();
        int i = 0 ;
        int arrayN[][] = new int[N][N];
        int j = N/2 ;
        for(int k = 1 ; k <= N*N ; k++){
         arrayN[i][j] = k ;
         //System.out.println("i"+i+" "+"j"+j);
         if(k%N==0) i = (i+1)%N ;
         else{
          i = (i+2)%N ;
          j = (j+1)%N ;
         }
        }
       
        for(int m = 0 ; m < N ; m++){
         for(int n = 0 ; n < N ; n++)
          System.out.print(arrayN[m][n]+"\t");
         System.out.println();
     
        }
 }

}