【问题标题】:How can i make this matrix example with jagged array in java我如何在java中使用锯齿状数组制作这个矩阵示例
【发布时间】:2020-06-21 11:52:19
【问题描述】:

我有这个代码:

public class matrixExample {
    public static void main(String[] args)   {

        int m[][] = new int[5][5]; 

        int count = 1;  
        for (int i=0; i<m.length; i++) 
            for(int j=0; j<i+1; j++) 
                m[i][j] = count++; 
       

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

然后输出:

我该怎么做,如下图所示?

【问题讨论】:

    标签: java arrays matrix formatting


    【解决方案1】:
    int size = 5;
    int[][] m = new int[size][size];
    int count = 1;
    for (int i = 0; i < size; ++i)
        for (int j = size - i - 1; j < size; ++j)
            m[i][j] = count++;
    

    【讨论】:

      【解决方案2】:

      您可以按照上面saka1029's answer 中的建议填充矩阵,然后使用格式化输出进行打印:

          for (int i = 0; i < m.length; i++) {
              for (int j = 0; j < m[i].length; j++) {
                  System.out.printf(" %2d ", m[i][j]);
              }
              System.out.print('\n');
          }
      

      或者,可以保持“正常”矩阵,只改变它的输出:

      public static void main(String []args){
          int m[][] = new int[5][5]; 
      
          int count = 1;
          // keeping initial array as is
          for (int i=0; i<m.length; i++) 
              for(int j=0; j<i+1; j++) 
                  m[i][j] = count++; 
                 
          for (int i = 0; i < m.length; i++) {
              StringBuilder sb = new StringBuilder();
              for (int j = 0; j < m[i].length; j++) {
                  if (m[i][j] > 0) {
                      sb.append(String.format(" %2d ", m[i][j]));
                  } else {
                      sb.insert(0, String.format(" %2d ", m[i][j]));
                  }
              }
              System.out.println(sb.toString());
          }
      }
      

      两种情况下的输出是相同的:

        0   0   0   0   1 
        0   0   0   2   3 
        0   0   4   5   6 
        0   7   8   9  10 
       11  12  13  14  15 
      

      【讨论】:

        猜你喜欢
        • 2023-03-27
        • 1970-01-01
        • 2015-07-01
        • 1970-01-01
        • 2015-07-08
        • 1970-01-01
        • 1970-01-01
        • 2016-10-12
        • 2019-10-21
        相关资源
        最近更新 更多