Java 将菱形打印方法转换为递归方法

Java 将菱形打印方法转换为递归方法,java,recursion,methods,shapes,Java,Recursion,Methods,Shapes,今晚我们必须提交一个包含许多方法的项目,其中之一是打印一个只有奇数的菱形,它们之间有空格,如果数字是3,则输出如下: * * * * * 嗯,我试图自己编写一个方法,但我没能,只是找到了这个方法,我需要有人帮助我将其转换为递归方法。非常感谢公共静态字符串DiamondFint num//method1 { ifnum>0 { 返回*+金刚石+2; } 其他的 { 回来 } } 公共静态字符串DiamondSint num//method2 { ifnum>0 { return*+Diam

今晚我们必须提交一个包含许多方法的项目,其中之一是打印一个只有奇数的菱形,它们之间有空格,如果数字是3,则输出如下:

* * * * *
嗯,我试图自己编写一个方法,但我没能,只是找到了这个方法,我需要有人帮助我将其转换为递归方法。非常感谢公共静态字符串DiamondFint num//method1 { ifnum>0 { 返回*+金刚石+2; } 其他的 { 回来 } } 公共静态字符串DiamondSint num//method2 { ifnum>0 { return*+DiamondFnum+2;//访问方法1 } 其他的 { 回来 } }

}


这一个是完全错误的,给了我借口

公共静态字符串菱形

num//method1

{

    if(num>0)

    {

        return "* " + 
小菜蛾+2

    }

    else

    {

        return " ";

    }

}

 public static String DiamondS(int 
num//method2

{

    if(num>0)

    {

        return " * " + 
小菜蛾+2//访问方法1

    }

    else

    {

        return " ";

    }

}

public static String Space(int num) 
//方法3

{

    if(num>0)

    {

        return " " + Space(num+2);

    }

    else

    {

        return " ";

    }

}

public static void DiamondResult(int 
num//method4

{

    for(int i=1; i<num; i++)

    {

        System.out.print(Space(num-i));//access method3

         System.out.println(DiamondF(i));//access method1


    }

     for(int i=0; i<num; i++)
    {

        System.out.println(DiamondS(num-i));//access method2

        System.out.print(Space(i));//access method3
}
}很难理解你想要什么,因为你的描述

打印只有奇数且中间有空格的菱形的步骤

还有你公布的数字

  * 
* * * 
  *
不太匹配。无论如何,这里有一个非常简单的递归代码,它可以打印一个菱形,理解它,然后从那里开始工作

static int iteration = 1;
private static void drawDiamond(int n) {
    String row = new String(new char[iteration]).replace("\0", "*"); // create a string with '*' repating n times
    iteration++;
    if (iteration <= n) {
        System.out.println(row);
        drawDiamond(n);
    }
    System.out.println(row);
}

你可以先尝试格式化你的帖子,并解释你已经尝试过的内容。如果你一直在寻找我们可以帮助你的方法,你永远也学不到,但你不应该只是复制和粘贴代码。你应该试着通过调试弄清楚为什么这种方法有效……如果你想成为一名开发人员,你需要学习如何开发。我们可以帮助您,但您至少应该尝试一些东西,然后我们可以为您指出正确的方向…查找有关递归的文章,它应该可以帮助您开始…如果您有什么新的想法,请编辑此问题。除非答案是正确的,否则不要发布答案。这也可能对你有所帮助
  * 
* * * 
  *
static int iteration = 1;
private static void drawDiamond(int n) {
    String row = new String(new char[iteration]).replace("\0", "*"); // create a string with '*' repating n times
    iteration++;
    if (iteration <= n) {
        System.out.println(row);
        drawDiamond(n);
    }
    System.out.println(row);
}
*
**
***
**
*