小编dc3*_*c36的帖子

带有两个变量的Java递归

我一直在试图弄清楚这种递归方法的堆栈是什么样的.

public class Apples {

    public static void main (String [] args) {
       q1(5);   
    }

    public static int q1 (int x) {
        if (x < 1) {
            System.out.println(x);
            return 1;
        }
        int a = 3 + q1(x / 2);
        int b = 2 * q1(x - 2) + 1;
        System.out.println(x + ";" + a + ";" + b);
        return a + b;
    }
}
Run Code Online (Sandbox Code Playgroud)

但到目前为止,我只认为堆栈按x/2增长:

x=0   returns 1;
x=1  a=4  b=3     returns 7;
x=2  a=10 b=3     returns 13;
x=5  a=16 …
Run Code Online (Sandbox Code Playgroud)

java recursion

9
推荐指数
1
解决办法
1525
查看次数

标签 统计

java ×1

recursion ×1