螺旋矩陣

螺旋矩陣

螺旋矩陣是指一個呈螺旋狀的矩陣,它的數字由第一行開始到右邊不斷變大,向下變大,向左變大,向上變大,如此循環。利用java實現的螺旋矩陣,當輸入N之後,會自動列印出螺旋矩陣。

基本介紹

  • 中文名:螺旋矩陣的java實現
  • 含義:呈螺旋形的矩陣
  • 特點:向左變大,向上變大,如此循環
基本思路,程式範例,

基本思路

螺旋矩陣的打頌付愉腳永頌印首先要對n*n的數組進行賦值,根據犁檔規律可以看出,每一層都霉淚拒是按照右->下->左->上的順淋戶愉序進行遞增,因此,只要找出每一層的第一個數即可,第一個數值為上一層陵臘員旋的第一個數+4*n-4,循環時n每次減2。

程式範例

public class SnakeArray {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s=new Scanner(System.in);
int n=s.nextInt();
int tempN=n;
int [][]a=new int [n][n];
int i,j,num=0,nn=1;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=0;
}
System.out.println();
}
while(n>凶晚整斷0)
{
if(n==1)
a[num][num]=nn;
a[num][num]=nn;
if(n>1){
a[num+1][num]=4*n-5+a[num][num];
for(i=num,j=num+1;j<num+n;j++)//上邊橫著
a[i][j]=a[num][num]+j-num;
for(j=num+n-1,i=num+1;i<num+n;i++)//右邊豎著
{
a[i][j]=a[i-1][j]+1;
//if(n==2)
// a[i][j]=tempN*tempN-1;
}
for(i=num+n-1,j=n+num-2;j>=num;j--)//下面橫著
{
a[i][j]=a[i][j+1]+1;
}
for(j=num,i=num+n-2;i>num;i--)//左面豎著
{
a[i][j]=a[i+1][j]+1;
}
}
else {
break;
}
nn+=4*n-4;
n=n-2;
num++;
}
for(i=0;i<tempN;i++)
{
for(j=0;j<tempN;j++)
{
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
}

相關詞條

熱門詞條

聯絡我們