java - 需要修复我的递归代码(get 需要返回 int 或 stackoverflow 错误)

标签 java recursion

public class recursionTester {

    public static void main(String[] args) {

        System.out.println("Your recursion is " + Recursion(5,4));
    }    

    private static int Recursion(int recursive1, int recursive2) {

            if(recursive2 == 0)
                return 1; 

            else if (recursive2 >= 0)

            return Recursion(recursive1 * Recursion(recursive1,recursive2-1), recursive2);

    }
}

//我更多地寻求解决方案而不是建议,因为我已经知道我的问题

最佳答案

看起来您想使用递归计算 x 的 y 次方值(即 x ^ y)。您需要记住的重要一点是,您需要在某些条件下终止函数调用;否则,就会变得无休无止。

public class RecursionTester {
    public static void main(String[] args) {
        System.out.println("5 ^ 4 = " + power(5, 4));
    }

    private static int power(int x, int y) {
        if (y == 0) // Because x ^ 0 = 1
            return 1;
        return x * power(x, y - 1);
    }
}

输出:

5 ^ 4 = 625

这是您要找的吗?如果情况并非如此,请随时发表评论。

关于java - 需要修复我的递归代码(get 需要返回 int 或 stackoverflow 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59110710/

相关文章:

java - 升级到 Java 7 时有哪些陷阱

java - 安装 oracle-java8-set-default 后未设置 webupd8 JAVA_HOME

javascript - Angular 递归 ng-include,同时跟踪递归深度

java - 从二叉搜索树中递归删除

c++ - 具有递归可变参数函数的stringstream?

java - 为什么Scala可以序列化Function但不能序列化PartialFunction?

java - 当excel单元格中没有值时,显示错误

java聊天(服务器套接字/套接字)

c++ - 使用作为对 vector 元素的引用的参数调用 c++ 函数

recursion - 递归函数 lisp 返回列表