java - 递归代码无法正常工作

标签 java recursion

如果我删除注释,代码工作正常,如果我注释上面的注释行,我会收到错误

package TEST;

class Fact {
    // this is a recursive method
    int fact(int n) {

        // if (n == 1)
        // return 1;
        int result = fact(n - 1) * n;
        return result;

    }

    public static void main(String args[]) {
        Fact f = new Fact();
        System.out.println("Factorial of 7 is " + f.fact(5));
        System.out.println("Factorial of 4 is " + f.fact(4));
        System.out.println("Factorial of 5 is " + f.fact(5));
    }
}

if i remove the comment the code is working fine and if i comment the above lines which are commentd i get an error

最佳答案

这是编写递归程序的两个条件。 1. 方法调用自身 2. 终止条件

当你评论

//if (n == 1) //返回 1;

您的代码不知道何时终止并进入无限循环,因此出现错误。

关于java - 递归代码无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22316763/

相关文章:

java - 我无法从服务器端套接字读取

java - %s in String.format 用于数字

java - 除 IMEI 或 IMSI 之外的手机唯一标识符?

c++ - 递归方法不断崩溃(更改算法)

计算一个节点是否在 BST 中有任何子节点

java JFrame更新修改了另一个JFrame

java - Intellij Idea 15 Gradle项目导入Junit编译错误

bash - 递归计算特定文件BASH

c - 回文校验的递归方法

c# - 生成一系列递归字母(如 Excel 列标题)