如何在java中生成递归形状

如何在java中生成递归形状,java,recursion,Java,Recursion,我怎样才能做出这样的递归形状? 这是用户输入m=3,n=5的示例 输出结果如下所示: *** **** ***** ***** **** *** 我得到的提示是: 可以使用for循环绘制一行形状。但是您需要递归来调用问题的“较小”版本的方法 这是我的代码,完全错了:| public static void main(String[] args) { Scanner s = new Scanner(System.in); int m = s.nextInt();

我怎样才能做出这样的递归形状? 这是用户输入m=3,n=5的示例 输出结果如下所示:

***
****
*****
*****
****
***
我得到的提示是:

可以使用for循环绘制一行形状。但是您需要递归来调用问题的“较小”版本的方法


这是我的代码,完全错了:|

   public static void main(String[] args) {

    Scanner s = new Scanner(System.in);

    int m = s.nextInt();
    int n = s.nextInt();

    question1(m,n);
}

public static void question1(int m, int n){

    int counter = m;
    if(m < n){
        System.out.print("*");
        m = m + 1;
        question1(m,n);

    }

    else if(m == n){
        System.out.print("*");


    }
}
publicstaticvoidmain(字符串[]args){
扫描仪s=新的扫描仪(System.in);
int m=s.nextInt();
int n=s.nextInt();
问题1(m,n);
}
公共静态无效问题1(整数m,整数n){
int计数器=m;
if(m
您应该阅读有关递归的内容,并尝试做一些事情。这本网站/书有很好的解释


您需要在问题1(int m,int n)中使用return语句,并且需要调用该函数。这是递归的一个例子

public static long factorial(int n) { 
if (n == 1) return 1; 
return n * factorial(n-1); 
} 

这里是一个实现。我知道递归一开始很难理解:

public static void main(String... args) {
    printShape(3, 1);
}

// @param numStars The number of stars to print in a row
// @param inc +1 or -1, representing increasing or decreasing amount of stars
private static void printShape(final int numStars, final int inc) {
    if (numStars < 3) 
        return;
    else if (numStars > 5) 
        printShape(numStars - 1, -1); // Reverse directions
    else {
        for (int i = 0; i < numStars; i++) 
            System.out.print("*");
        System.out.println();
        printShape(numStars + inc, inc);
    }
}
publicstaticvoidmain(字符串…参数){
打印形状(3,1);
}
//@param numStars一行中要打印的星星数
//@param inc+1或-1,表示恒星数量的增加或减少
专用静态void打印形状(最终int numStars,最终int inc){
如果(numStars<3)
返回;
否则如果(numStars>5)
printShape(numStars-1,-1);//反向
否则{
for(int i=0;i
您试过什么吗?问题是什么?你应该从做一些计划开始,然后继续尝试编写实现你想法的代码。@ElliottFrisch这是我的代码。。