gpt4 book ai didi

Java 递归三角形站在尖端

转载 作者:行者123 更新时间:2023-12-01 15:09:49 24 4
gpt4 key购买 nike

我想知道如何用星号在其尖端而不是在其底部创建三角形。

我有让它站在底座上的代码:

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

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

return p;
}

但后来我陷入了如何让最多的星星位于顶部,然后是最少的星星,依此类推。我正在考虑使用 (count - p) 来从减少量中减去行的输入,但后来我对这个想法感到困惑,因为 p 是字符串。

编辑:我尝试使用原始方法更改 printTriangle(count - 1) 的位置而不进行迭代,每行得到 1 颗星;我该如何解决这个问题?

public class triangles 
{
public static void main(String[] args)
{
printTriangle(5);
}
public static String printTriangle (int count)
{
if( count <= 0 ) return "";
String p = "";
p = p + "*";
System.out.print(p);
System.out.print("\n");
p = printTriangle(count - 1);
return p;

}


}

最佳答案

对我来说,您似乎在递归函数中缺少一个循环,无法在每行的 *s 上添加正确的数字。

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

String p = printTriangle(count - 1);
for (int i=0; i<count; i++)
{
p = p + "*";
}

p += "\n";
return p;
}

并调用代码看起来像

String triangle = printTriangle(4);
System.out.println(triangle);

它产生

*
**
***
****

此外,我会使用 StringBuilder 而不是字符串来实现此目的。

重读一下你的问题。

你在寻找这样的三角形

****
***
**
*

调用递归时需要更改。

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

String p="";
for (int i=0; i<count; i++)
{
p = p + "*";
}

p += "\n";
return p + printTriangle(count - 1);
}

关于Java 递归三角形站在尖端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12487764/

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