站在顶端的Java递归三角形
我想知道如何用顶端的星号而不是底部的星号来创建三角形 我有让它站在基座上的代码:站在顶端的Java递归三角形,java,recursion,geometry,Java,Recursion,Geometry,我想知道如何用顶端的星号而不是底部的星号来创建三角形 我有让它站在基座上的代码: 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"); ret
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;
}
公共静态字符串printTriangle(int计数)
{
如果(count在我看来,递归函数中缺少一个循环,为每一行在*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;
}
它产生
*
**
***
****
此外,我会使用StringBuilder,而不是字符串
重读你的问题
事实上,你追求的是这样一个三角形
****
***
**
*
当调用递归时,需要进行更改
即
公共静态字符串printTriangle(int计数)
{
如果(count@Leon,虽然你的答案是正确的,但它遗漏了他的问题的一部分
编辑:@Leon,看来你已经更新了你的答案。我的答案不再需要了
对于站在顶端的三角形,请尝试以下方法
public static String printTriangle (int count)
{
if( count <= 0 ) return "";
String p = "";
for (int i=0; i<count; i++)
{
p = p + "*";
}
p += "\n";
p += printTriangle(count - 1)
return p;
}
公共静态字符串printTriangle(int计数)
{
如果(是的,当我粘贴Eclipse的答案时,我意识到有什么方法可以使用字符串而不是stringBuilder,并且不需要任何迭代?我将在问题中公布我的尝试/对于这样一个小例子,你不必使用stringBuilder,但这是添加字符串的正确方法。任何迭代都可以实现因此,理论上,你可以通过调用一个递归函数来替换迭代,这个递归函数只需打印当前行的*s,使用纯递归,你需要在两个函数中完成。公共静态字符串printLine(int count){if(count)”并且每行得到一个星;我如何解决这个问题?”这是因为每1个递归调用只打印1“*”(这会添加一个新行)
****
***
**
*
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);
}
public static String printTriangle (int count)
{
if( count <= 0 ) return "";
String p = "";
for (int i=0; i<count; i++)
{
p = p + "*";
}
p += "\n";
p += printTriangle(count - 1)
return p;
}