91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-28
  • 語言: Java
  • 標簽: 幻方??java??

資源簡介

n階幻方的求法(java代碼版)。由于現在網上還沒有系統的求n階幻方的java代碼,所以寫出來供大家參考!

資源截圖

代碼片段和文件信息

package?test03;
import?java.util.Arrays;
import?java.util.Scanner;

public?class?MagicSquare?{

public?static?void?main(String[]?args)?{
System.out.println(“請確定是幾階幻方“);
Scanner?scan?=?new?Scanner(System.in);
int?a=scan.nextInt();
int[][]?array=null;
if(a%2!=0){
array?=?getSingleArray(a1);
}else{
array=getDoubleArray(a);
}
for(int[]?arr:array){
System.out.println(Arrays.toString(arr));
}
scan.close();
}
/**
?*?奇數階幻方將最小的數放在第一行最中間,然后將下一個放在這個數的右上方;如果下一個的地方有數了則放在該數的下方
?*?@param?index:index表示幻方的階數(奇數)
?*?@param?num:num表示幻方中最小的數
?*?@return:返回滿足幻方的數組
?*/
public?static?int[][]?getSingleArray(int?indexint?num){
//定義數組將最小的數放在數組第一行正中間
int[][]?arr=new?int[index][index];
arr[0][index/2]=num;
int?x=0;int?y=index/2;
//將最小數以后的數放入數組中
for(int?i=num+1;i<=index*index+num-1;i++){
//xy為上個數的坐標把它們改為當前數的坐標
if(x-1<0){//x-1<0說明x坐標越界x變成x坐標的最大值;否則x-1就是當前數的橫坐標
x=arr.length-1;
}else{
x=x-1;
}
if(y+1>arr.length-1){//y+1大于y的最大值說明y坐標越界y變為0;否則y+1就是當前數的縱坐標
y=0;
}else{
y=y+1;
}
while(true){
//判斷得到的坐標是否有數
if(arr[x][y]==0){
//得到的坐標沒數則直接將當前數賦給數組
arr[x][y]=i;
break;
}else{
//得到的坐標有數則獲取上一個數的坐標x坐標+1作為現在的縱坐標繼續循環直到xy對應的值是0賦值退出
int[]?js?=?getIndex(arr?i-1);
x=js[0]+1;
y=js[1];
if(x>arr.length-1){
x=0;
}
}
}
}
return?arr;
}
/**
?*?
?*?@param?arr:目標數組
?*?@param?num:目標數(在arr數組中唯一)
?*?@return:返回arr數組中num這個數的坐標(存放在數組中)
?*/
public?static?int[]?getIndex(int[][]?arrint?num){
int[]?s=new?int[2];
for(int?i=0;i for(int?j=0;j if(arr[i][j]==num){
s[0]=i;
s[1]=j;
}
}
}
return?s;
}
/**
?*?偶數階幻方
?*?ps:不包含2階幻方
?*?@param?len:幻方階數因為不包含2

評論

共有 條評論