站在顶端的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;
}