java - 如何用java制作一个数字三角形

标签 java

我需要生成一个三角形,如图所示:

***4
**34
*234
1234

我的代码是这样的:

for(int i=3; i>0 ;i--)
    for(int j=0; j < i; j++){
        System.out.print("*");
    }
    for(int s3 = 5; s3 >= 0; s3 -- ){
        for ( int n2 = s3  + 1; n2 <= 4; n2 ++){                                             
           System.out.print(n2);
        }
        System.out.println();
    }
}

这给了我这个:

***

4
34
234
1234
**

4
34
234
1234
*

4
34
234
1234

有人可以帮我解决这个问题吗?

最佳答案

就这样做:

        for(int i=3; i>=0 ;i--) {
            for(int j=0; j < i; j++) {
                System.out.print("*");
            }
            for ( int k = i+1; k < 5; k++ ) {
                System.out.print(k);
            }
            System.out.println();
        }

您只需要一个外循环和 2 个内循环。外层循环从 3 倒数到 0(该行的星星数量)。第一个内循环打印了那么多星星。第二个用数字填充其余部分。

请注意,无论您是从 3 到 0 还是从 4 到 1 开始,然后是否使用 +1 以及是否使用 -1 并不重要。此外,第一个循环向前或向后计数并不重要。

我刚从 3 开始,因为我发现如果 i 是行中星星的数量更容易理解。我在第一个循环中向前计数(从 0 到 i-1),只是因为我自己发现沿此方向计数比反向计数更直观。

关于java - 如何用java制作一个数字三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32615584/

相关文章:

java - 如何以线程安全的方式填充字符串映射和另一个映射?

java - Math.round MAX 返回值

java - Windows 7 上的 Java 是否支持任何声音格式?

java - 强制 Hibernate 查询访问数据库

java - 如何在 Android Studio 的 ActionBar 上添加返回按钮?

java - 如何在 jME3 中以编程方式创建并执行自定义动画?

java - for 循环如何迭代到下面代码中的下一项

Java - 从包含指定的ArrayList中删除字符串

java - 使用 Canvas 和计时器绘图

Java正则表达式模式匹配