Java练习:使用递归方法打印星号三角形及其倒三角形

问题描述

您必须重新考虑问题,这可能是一种可能的解决方案:

public class Recursion1 {
private static int endValue;
private static int startValue = 1 ;

public Recursion1(int endValue){
    Recursion1.endValue = endValue;
}

public static void main(String[] args) {
    Recursion1 me = new Recursion1(4);
    me.doIt();
}

public void doIt() {        
    nums("*");
}

public String nums(String value) {
    if( startValue == endValue){
        System.out.println(value);
    }else{
        System.out.println(value);
        startValue ++;
        value = value.concat("*");
        nums(value);
        value = value.substring(1);
        System.out.println(value);
    }
    return value;
}}

解决方法

我需要打印一个三角形及其倒三角形(位于其尖端)。我设法只打印出三角形。我知道我可以轻松地使用for循环,但是我想知道如何使用递归,在我的情况下,我不知道如何同时打印三角形和倒置三角形,谢谢。

Example desired output:
*
**
***
****
****
***
**
*

我的代码:

public class Recursion1 {
    public static void main(String[] args) {
        Recursion1 me = new Recursion1();
        me.doIt();
    }

    public void doIt() {        
        nums(4);
    }

    public String nums(int counts) {
        if (counts <= 0) {
            return "";
        }

        String p = nums(counts - 1);
        p = p +"*";
        System.out.print(p);
        System.out.println();

        return p;
    }
}

我的结果:

Results:
*
**
***
****

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”