我是编程的新手。因此,作为练习,我尝试打印如下的数字模式
4
34
234
1234
我尝试了以下代码
public static void main(String[] args) {
// TODO Auto-generated method stub
int n =4;
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
System.out.print(" ");
}
int num = 4;
for (int j = 1; j <= i; j++) {
System.out.print(num);
num--;
}
System.out.println("");
}
}
但是它是以这种方式打印的。
4
43
432
4321
我认为,在打印之前我必须减小该值。如果我错了,请纠正我。但是我被困在这里。谁能帮我吗?
答案 0 :(得分:5)
这是您想要的模式:
4
34
234
1234
当您用文字描述模式时,它可能像这样:
这里已经存在某种模式。最后两行看起来非常相似。让我们看看前两行是否可以采用相同的形式:
现在看起来不错。下一步是将措辞更改为取决于给定的行:
我注意不要说5而不是4 + 1,这样4仍然可见。让我们给这4个另外一个名字:
现在,您应该能够将此指令转换为Java代码。
答案 1 :(得分:0)
您只需要一个内部for循环。
我使用三元运算符(也称为elvis-operator,因为?:
)决定打印数字还是空格:
int n = 7;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
System.out.print(j > n-i ? j : " ");
}
System.out.println();
}
它打印
7
67
567
4567
34567
234567
1234567
答案 2 :(得分:-1)
在这种情况下,您实际上只需要一个嵌套循环:
int n = 4;
for (int i = n; i > 0; i--) {
for (int j = 1; j <= n; j++) {
if (j < i) {
System.out.print(" ");
} else {
System.out.print(j);
}
}
System.out.println();
}
因此从0
到n
循环并打印一个空格,或者如果内部计数器小于i
则打印数字。
输出:
4
34
234
1234