簡體   English   中英

使用for循環遞歸

[英]Recursion using for-loop

我目前正在編寫一個程序,在該程序中我必須使用 for 循環遞歸計算一個數字。 但不幸的是,我不知道如何正確實現這個函數,因為我當前的實現沒有計算出正確的答案。

public class Calc {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        double k = sc.nextDouble();
        double e = sc.nextDouble();
        double q = sc.nextDouble();
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            k = (k + (i * e)) * (1 + q);  //The problem I have is that I don't know how to access the previous element of the for-loop
        }   

    }
}

而不是你的 for 循環:

for (int i = 0; i < n; i++) {
    k = (k + (i * e)) * (1 + q);
}

你確實可以使用遞歸。

只需創建一個名為calculateK()的方法並遞歸調用它,如下所示:

public static double calculateK(double k, int i) {
    if (i == n) {
        return k;
    }
    else 
    {
        return calculateK((k + (i * e)) * (1 + q), i + 1);
    }
}

暫無
暫無

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

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