小编saj*_*hrw的帖子

Java递归提供了两种不同的结果.为什么?

我对下面的代码段的结果有一个模糊的理解.请帮我用一个例子清楚地理解这一点.

这是我的第一个代码段:

public static void main(String args[]) {
    int number = 4;
    System.out.print(what(number));
}

public static int what(int number){
    if(number < 2)
        return 1;
    else
        return what(number-2) + what(number -1);
}
Run Code Online (Sandbox Code Playgroud)

结果返回5.但是当尝试为操作数单独运行此递归方法时,两个代码段都返回1作为结果.

以下代码返回1作为结果:

public static int what(int number){
    if(number < 2)
        return 1;
    else
        return what(number-2);
}
Run Code Online (Sandbox Code Playgroud)

这个代码同样适用:

public static int what(int number){
    if(number < 2)
        return 1;
    else
        return what(number-1);
}
Run Code Online (Sandbox Code Playgroud)

我需要了解这是如何工作的.

java algorithm recursion

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

标签 统计

algorithm ×1

java ×1

recursion ×1