gpt4 book ai didi

java - 使用星号的金字塔

转载 作者:行者123 更新时间:2023-11-30 11:07:40 25 4
gpt4 key购买 nike

我的一个问题是我的教授提出的一个问题,那就是编写一个将显示以下模式的循环

我已经找到了 A 但我的问题是 B 第二个

我的A代码

 for( row = 10; row >= 0; row--)     // number of rows
{
for( cnt = 0; cnt < row; cnt++) // number of stars
{
System.out.print( "*");
}
System.out.println();
}

我用了多种不同的方法,得出的结论是 A)正在走

row(10)1.2.3.4.5.6.7.8.9.10
row(9) 1.2.3.4.5.6.7.8.9
row(8) 1.2.3.4.5.6.7.8

和 B) 正在做一些事情

row(10) 1.2.3.4.5.6.7.8.9.10
row(9) 2.3.4.5.6.7.8.9.10
row(8) 3.4.5.6.7.8.9.10

任何人都可以帮助我解决我的代码中缺少的内容,以将其转换为镜像。

最佳答案

处理此类问题的简单方法是了解您有多少行代码并以此为基础编写代码。第一个 for 循环表示金字塔有多少条线,在本例中为 10。基于线的星号或空格数的方法如下。

基本上公式是:

变化率*(线)+ X = 该线上的星星/空格数量

首先获取变化率,然后获取 X 并在代码中实现它。

第一行有 10 颗星,第二行有 9 颗星,第三行有 8 颗星,依此类推。为了得到变化率,你用第一颗减去第二颗星,或者用第二颗减去第三颗(你得到相同的结果,因为它以相同的速率减少)。尝试 9-10 或 8-9 你得到 -1。所以如果你选择第一行,通过使用你得到 -1*1 + X = 10 的公式,其中 X 等于 11。如果你检查第二个 for 循环中的“-1*line +11”,并且取line = 1,你得到的答案将是10,这是你在第1行的星星数量。如果你取第2行或第3行,你将得到相同的公式。取第3行,你得到-1 * 3 + X = 8 结果是 X = 11。

请注意,您在代码中使用的是公式的左侧,即变化率*(线)+ X

接下来是空格数。我不知道你在第一行有多少个空格,因此我假设你有 10 个空格,并增加 3。所以第一行有 10 个,第二行有 13 个,依此类推。再次执行相同的步骤。您需要根据行数进行计算,首先通过用第一行 (13-10) 减去第二行的空格量来获得变化率。以第 1 行为例。3*1 + X = 10(因为在第一行我们有 10 个空格)。 X = 7。尝试行号 2、3*2 + X = 13,您仍然会得到 X = 7。现在您知道您有一个可以在代码中使用的固定常数公式。

我们在代码中实现它。

public class Pyramid {
public static void main (String [] args){
for(int line = 1; line <=10; line++){
//j is decreasing since number of stars are decreasing
for(int j = -1*line + 11; j >=1; j--){
System.out.print("*");
}
//k is decreasing since number of spaces are increasing
for(int k = line; k <= 3*line +7; k++ ){
System.out.print(" ");
}

for(int j = -1*line + 11; j >=1; j--){
System.out.print("*");
}
//End of line, start new one
System.out.println();
}
}

关于java - 使用星号的金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28841467/

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