簡體   English   中英

需要修復我的遞歸代碼(獲取需要返回 int 或 stackoverflow 錯誤)

[英]Need a fix on my code of recursion (either get needs to return int or stackoverflow error)

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

這就是你要找的嗎? 如果情況並非如此,請隨時發表評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM