gpt4 book ai didi

java - 仅使用递归从星星中创建一个三角形

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:06:32 26 4
gpt4 key购买 nike

我需要编写一个方法,其调用方式类似于 printTriangle(5);。我们需要创建一个迭代方法和一个递归方法(没有任何迭代)。输出需要如下所示:

*
**
***
****
*****

此代码适用于迭代,但我无法将其调整为递归。

public void printTriangle (int count) {
int line = 1;
while(line <= count) {
for(int x = 1; x <= line; x++) {
System.out.print("*");
}
System.out.print("\n");
line++;
}
}

我应该注意,您不能使用任何类级变量或任何外部方法。

最佳答案

请注意,在您的迭代方法中,您有两个计数器:第一个是您在 line 上的第一个行,第二个是您在 x 上的行中的哪个位置>。您可以创建一个递归函数,它采用两个参数并将它们用作嵌套计数器,yx。递减 x 直到它达到 0,然后递减 y 并设置 x = y,直到 x 和 y 都为 0。

您可能还会注意到,三角形中的每一行都是前一行加上一颗星。如果您的递归函数为上一行返回一串星号,则下一行始终是该字符串加上一颗星号。因此,您的代码将类似于:

public String printTriangle (int count) {
if( count <= 0 ) return "";

String p = printTriangle(count - 1);
p = p + "*";
System.out.println(p);

return p;
}

关于java - 仅使用递归从星星中创建一个三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2717111/

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