我试图用这样的数字创建一个方形:
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重启?
答案 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之间)。