package com.slq.three;
import java.awt.font.FontRenderContext;
import java.util.Scanner;
/**
* ClassName: RectangleTest
* Package: com.slq.three
* Description:
*
* @Author slq
* @Create 2023/3/23 13:59
* @Version 1.0
*/
public class RectangleTest {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个数字:");
int number=input.nextInt();
int[][] arr=new int[number][number];
int s=number*number;
int k=1;//右下左上
int i=0,j=0;
for(int m=1;m<=s;m++){
if(k==1){
if(j<number&&arr[i][j]==0){
arr[i][j]=m;
j++;
}else{
k=2;
i++;
m--;
j--;
}
}else if(k==2){
if(i<number&&arr[i][j]==0){
arr[i][j]=m;
i++;
}else{
k=3;
i--;
j--;
m--;
}
}else if(k==3){
if(j>=0&&arr[i][j]==0){
arr[i][j]=m;
j--;
}else{
k=4;
j++;
m--;
i--;
}
}else if(k==4){
if(i>=0&&arr[i][j]==0){
arr[i][j]=m;
i--;
}else{
k=1;;
i++;
j++;
m--;
}
}
}
for(int h=0;h<arr.length;h++){
for (int g=0;g<arr[h].length;g++){
System.out.print(arr[h][g]+" ");
}
System.out.println();
}
}
}
方法二:
package com.slq.three;
import java.util.Scanner;
/**
* ClassName: RectangleTest1
* Package: com.slq.three
* Description:
*
* @Author slq
* @Create 2023/3/23 16:03
* @Version 1.0
*/
public class RectangleTest1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个数字");
int number=input.nextInt();
int[][] arr=new int[number][number];
int maxX=number-1;
int minX=0;
int maxY=number-1;
int minY=0;
int count=0;
while(minX<=maxX){
for(int x=minX;x<=maxX;x++){
arr[minY][x]=++count;
}
minY++;
for(int y=minY;y<=maxY;y++){
arr[y][maxX]=++count;
}
maxX--;
for(int x=maxX;x>=minX;x--){
arr[maxY][x]=++count;
}
maxY--;
for(int y=maxY;y>=minY;y--){
arr[y][minX]=++count;
}
minX++;
}
for(int h=0;h<arr.length;h++){
for (int g=0;g<arr[h].length;g++){
System.out.print(arr[h][g]+" ");
}
System.out.println();
}
}
}