如何用数字创建一个正方形?

时间:2018-04-18 04:50:47

标签: java for-loop

我试图用这样的数字创建一个方形:

1234
2341
3412
4123

我该怎么做呢?

    for (int i = 1; i <= 4; i++) {
        for (int j = i; j <=4; j++) {
            System.out.print(j);
        }
        System.out.println();
    }

打印:

1234
234
34
4

如何让它再次以1重启?

7 个答案:

答案 0 :(得分:4)

你可以使用modulo

for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
        System.out.print((j  + i) % 4 + 1);
    }
    System.out.println();
}

<强>输出

1234
2341
3412
4123

答案 1 :(得分:0)

您需要更新到

for (int i = 1; i <= 4; i++) {

    for (int j = i; j <=4; j++) {
        System.out.print(j);
    }
    for (int j = 1; j < i; j++) {
        System.out.print(j);
    }

    System.out.println();
}

答案 2 :(得分:0)

这个怎么样?

for(int i = 1; i <= 4; i++){
    for(int j = 1; j <= 4; j++){
        System.out.print(((i + j + 2) % 4) + 1);
    }
    System.out.println();
}

如果你看一下预期的输出,它有一个模式,它被限制在有限的已知数字序列中。 模数是处理此类案例的理想选择。

答案 3 :(得分:0)

为循环添加一个

for (int i = 1; i <= 4; i++) {
    for (int j = i; j <=4; j++) {
        System.out.print(j);
    }
    for (int j = 1; j <i; j++) {
        System.out.print(j);
    }
    System.out.println();
}

答案 4 :(得分:0)

可能有一种更简单的方法,但这应该有效:

 for (int i = 1; i <= 4; i++) {
      for (int j = 3; j <= 6; j++) {
          System.out.print ((i + j) % 4 + 1);
      }
      System.out.println();
 }

答案 5 :(得分:0)

试试这个:

public class MyClass {
    public static void main(String args[]) {
        int count = 0;
        for (int i = 1; i <= 4; i++) {
        for (int j = i; j <=4; j++) {
            System.out.print(j);
            count += 1;            
        }
        if(count < 4){
            int remain = 4 - count; // to identify how many times it goes again
                for(int k=0;k<remain;k++){
                    System.out.print(k+1);
                }                
            }
            count = 0;
        System.out.println();
    }       
    }
}

<强>输出:

1234
2341
3412
4123

答案 6 :(得分:-1)

for (int i = 1; i <= 4; i++) {
    for (int j = 0; j <= 3; j++) {
        System.out.print(((i + j) % 4) + 1);
    }
    System.out.println();
}

模数(%)给出一个数字的余数除以另一个数字,因此(i+j) % 4总是给出0到3之间的结果。

添加一个以获得所需的值(1到4之间)。