【问题标题】:How would I print the Alphabet In a spiral starting from the bottom left corner? [closed]如何从左下角开始以螺旋形式打印字母? [关闭]
【发布时间】:2020-09-10 22:27:44
【问题描述】:

如果我想在矩阵中打印这样的东西:

G F E
H I D
A B C

我该怎么做?

我目前的代码是这样的:

A B C
H I D
G F E

我希望螺旋从矩阵的左下角开始,然后向左旋转。

这是我当前使用数字执行此操作的代码:

 int n = sc.nextInt();
        int[][] spiral = new int[n][n];
        int value = 1;
        int minCol = 0;  
        int maxCol = n-1;      
        int minRow = 0;  
        int maxRow = n-1;
        while (value <= n*n)
        {
            for (int i = minCol; i <= maxCol; i++)
            {
                spiral[minRow][i] = value;
                value++;
            }
             
            for (int i = minRow+1; i <= maxRow; i++) 
            { 
                spiral[i][maxCol] = value; 
                value++; 
            } 
            for (int i = maxCol-1; i >= minCol; i--)
            {
                spiral[maxRow][i] = value;        
                value++;
            }
             
            for (int i = maxRow-1; i >= minRow+1; i--) 
            {
                spiral[i][minCol] = value;
                value++;
            }
            minCol++;      
            minRow++;
            maxCol--;
            maxRow--;
        }
        for (int i = 0; i < spiral.length; i++)
        {
            for (int j = 0; j < spiral.length; j++)
            {
                System.out.print(spiral[i][j]+ "\t");
            }
             
            System.out.println();
        }

【问题讨论】:

    标签: java algorithm matrix spiral


    【解决方案1】:

    改变

           for (int i = 0; i < spiral.length; i++)
            {
                for (int j = 0; j < spiral.length; j++)
                {
                    System.out.print(spiral[i][j]+ "\t");
                }
                 
                System.out.println();
            }
    

           for (int i = spiral.length - 1; i >= 0; i--)
            {
                for (int j = 0; j < spiral.length; j++)
                {
                    System.out.print(spiral[i][j]+ "\t");
                }
                 
                System.out.println();
            }
    

    注意第一个 for 循环。它以相反的顺序打印行

    【讨论】:

      猜你喜欢
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 2014-08-10
      • 2018-03-23
      • 2021-06-13
      • 1970-01-01
      相关资源
      最近更新 更多