递归打印这些数字

时间:2016-01-05 01:48:16

标签: recursion

我想使用递归函数打印输入的数字,而不是零。我们采用一种叫做void demo(int n)的方法。例子为n = 5“5 4 3 2 1 2 3 4 5”。我可以打印“5 4 3 2 1”。我的递归函数是demo(n-1)所以我可以打印。当函数达到n = 0时,我认为它必须重写值,但如何?我无法在if块中写任何内容。

public class demo {

    void demo(int n) {
        if ( n == 0) 
        {

        }
        System.out.println(n);
        return demo(n-1);   
    }
}

1 个答案:

答案 0 :(得分:1)

这就是我要做的事情:

public class demo {
    void demo(int n) {
        System.out.println(n);

        if (n > 1) {
            demo(n - 1);
            System.out.println(n);
        }
    }
}

它不是尾递归,但这是递归比迭代更简单的情况。

如果你迭代那么你需要两个循环:

  1. n1倒计时的一个循环。
  2. 2n的另一个循环计数。
  3. 但是,使用递归我们可以简单地从n倒计时到1并打印每个数字,然后在递归后再次打印数字。