java作業之數字魔方(N維數字魔方和數字旋轉魔方)
阿新 • • 發佈:2018-12-12
N維數字魔方
原理: 定義一個奇數階二維陣列,把每個元素順序填入不同的自然數,要求行列和對角線元素相加的結果相等。
效果圖:
實現程式碼:
import java.util.*; public class MF{ public static void main(String[] args) { Scanner input= new Scanner(System.in); System.out.println("請輸入奇數構造魔方:"); int p=input.nextInt(); if(p%2==0) System.out.println("請輸入奇數");//如果輸入的是非奇數則不再執行 else { int n=p; int[][] a = new int[n][n];//構造二維陣列 int hang,lei;//定義行和列 hang=0;//要填充的初始行為第一行 lei=n/2;//從中間一列開始填充 for(int i=1;i<=n*n;i++) { a[hang][lei]=i;//第一行中間一個數填充為1 hang--; lei++;//行減一行,列加一列,開始填充此格的右上方一格 if(hang<0&&lei>=n) {//行和列同時越界 hang=hang+2; lei--;//從前一個格的下方重新開始 } if(hang<0)//行越界 hang=n-1;//從當前越界格的最下一列開始 if(lei>=n)//列越界 lei=0;//從第一列重新開始 if(a[hang][lei]!=0) {//此格已被填充 hang=hang+2; lei--;//從前一格的下一格重新開始 } } for(int[] i:a) {//輸出陣列 for(int j:i) { System.out.print(j+"\t"); } System.out.println(); } } } }