要螺旋输出一组数据,实现的解决方案:采用二维数组的形式来解决
结果如下:
实现如下:
这里我们定义一个类
public class LoopSort{ public static void main(String[] args){ //要螺旋输出的数据的个数 Scanner s=new Scanner(System.in); System.out.println("请输入螺旋输出的数据的行和列:"); int number=s.nextInt(); int code=s.nextInt(); s.close(); //定义一个存放数据的二维数组 int[][] numbers=new int[number][code]; //定义最小列 int minX=0; //定义最大列 int maxX=code-1; //定义最小行 int minY=0; //定义最大行 int maxY=number-1; //定义数据自增变量 int count=0; while(minX<=maxX){ //行不变,为最小行,列从小到大 for(int i=minX;i<=maxX;i++){ numbers[minY][i]=++count; } //这样第一行就不会在执行,就让最小行加一 minY++; //列不变,为最大列,行从小到大 for(int i=minY;i<=maxY;i++){ numbers[i][maxX]=++count; } //这之后最右边的列不再执行,就让最大列减一 maxX--; //行不变,为最大行,列从大到小 for(int i=maxX;i>=minX;i--){ numbers[maxY][i]=++count; } //最底层的行不再执行,就让最大行减一 maxY--; //列不变,为最小列,行从大到小 for(int i=maxY;i>=minY;i--){ numbers[i][minX]=++count; } //此时最左边的列不再执行,就让最小列加一 minX++; } // 对二维数组进行遍历,循环输出数组中保存的数据 for(int[] i:numbers){ for(int j:i){ String val=j<10 ? "0" : ""; System.out .print(val+j+" "); } System.out.println(); } } }
时间: 2024-11-08 19:01:48