Java练习: Printing asterisks Triangle and its inverted triangle using recursion method

标签 java for-loop recursion data-structures

我需要打印一个三角形及其倒三角形(站在其尖端)。我设法只打印出三角形。我知道我可以轻松使用 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:
*
**
***
****

最佳答案

你必须重新思考问题,这可能是一个可能的解决方案:

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;
}}

关于Java练习: Printing asterisks Triangle and its inverted triangle using recursion method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33524750/

相关文章:

Java8 ArchLinux arm 字体 NullPointerException

java - 如何增加数组大小并将每个新元素添加到数组顶部?

scala - 为什么必须在scala的for循环中为模式匹配定义过滤器?

for-loop - 使用 for 循环遍历切片时跳过元素

java - 递归调用main

sql - 规范化逻辑层次结构的度量总和

java - 如何实现 "animated CollapsingToolbar?"

java - 如何与大量的数字数组?

java - 简单绘画程序 - 新线未被识别

java - 使用 Java 通过 FTP 将所有目录复制到服务器