如何在2d阵列的楼梯案例中生成0?

时间:2016-08-02 12:09:29

标签: java arrays for-loop

在2D数组中,我们可以生成n * n矩阵。以及如何将数字替换为矩阵中的0替换。

public static void main(String[] args) {
        int rows = 8;
        int coulmns = 4;
        int array;
        for (int i = 1; i < rows; i++) {
            for (int j = 1; j < coulmns; j++) {

               System.out.print(i*j+" ");
            }
            System.out.println("");
        }
    }

}

输出:

1 2 3 
2 4 6 
3 6 9 
4 8 12 
5 10 15 
6 12 18 
7 14 21

如何以输出的形式替换为楼梯的0:

1 2 (0) 
2 (0) 6 
(0) 6 9 
4 (0) 12 
5 10 (0) 
6 (0) 18 
(0) 14 21

3 个答案:

答案 0 :(得分:0)

我认为语言是Java,因为它是指定的标记。

import java.util.*;
import java.lang.*;
import java.io.*;

class StairCase
{
    public static void main (String[] args) throws java.lang.Exception
    {
        int rows = 8;
        int coulmns = 4;
        int col=3;
        int row=1;
        int flag=0;
        int array;
        for (int i = 1; i < rows; i++) {
            for (int j = 1; j < coulmns; j++) {
                if(col==j && row==i){
                    System.out.print("(0)");
                    if(col>1 && col<4 && flag==0){
                        col--;
                        if(col==1){
                            flag=1;
                        }
                        row++;
                    }else{
                        col++;
                        if(col==3){
                            flag=0;
                        }
                        row++;
                    }
                }else{
                    System.out.print(i*j+" ");  
                }
            }
            System.out.println("");
        }
    }
}

结果:

1 2(0)

2(0)6

(0)6 9

4(0)12

5 10(0)

6(0)18

(0)14 21

答案 1 :(得分:-1)

在第二个for循环中尝试这样做:

for (int j = 1; j < coulmns; j++) {
   int number = i*j;

   if(i == 3 || i == 7) number = 0;
   else if((j == 3 && i == 1) || (j == 3 && i == 5)) number = 0;
   else if((j == 2 && i == 2) || (j == 2 && i == 6)) number = 0;
   else System.out.print(number + " ");
}

如果需要,您也可以使用模数。

答案 2 :(得分:-2)

我认为语言是Java,因为它是指定的标记。

我认为解决方案是使用模数运算。

您想要将单元格位置(4 - 行号%4)中的值替换为(0)。其中(行号%4)= 0,则(0)总是进入第二个单元格。所以代码是:

public static void main(String[] args) {
        int rows = 8;
        int coulmns = 4;
        int array;
        for (int i = 1; i < rows; i++) {
            for (int j = 1; j < coulmns; j++){
               if((j == (4 - (i % 4)) || (i % 4 == 0 && j == 2)))
               {
                 System.out.print("0 ");
               }
               else
               {
               System.out.print(i*j+" ");
               }
            }
            System.out.println("");
        }
    }

}