gpt4 book ai didi

java金字塔/三角形使用for循环

转载 作者:行者123 更新时间:2023-12-01 17:00:43 24 4
gpt4 key购买 nike

我想打印三角形/金字塔样式,例如:

   1
323
54345
7654567

这是我的代码:

int lines = 5;

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

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

for (int j = i; j > 1; j--) { //this for loop is my problem. any solution?
System.out.print(j);
}

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

我得到的是

   1
223
32345
4324567

我在办公室工作时一直在研究代码,我想一周以来我仍然找不到解决方案,即使我在谷歌中使用搜索。我只是想通过条件来增强我的逻辑,还没有大量的面向对象或递归。

最佳答案

第一个循环中的问题是您在第二个循环中解决的问题! (和循环中的最大数有关系)

for (int j = i; j > 1; j--) { //this for loop is my problem. any solution?
System.out.print(j);
}

看看金字塔左边的数字。它们从右端的位置开始(金字塔的每条线都是对称的)。该数字的一般公式为 i + i - 1,其中 i 是外循环的行号。

第二行从2 * i - 1 = 2 * 2 - 1 = 3开始。第三行从 2 * 3 - 1 = 5 开始,依此类推。

因此,您的第二个内部循环应如下所示:

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

关于java金字塔/三角形使用for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27801076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com