使用for循环递归

时间:2018-11-02 16:26:57

标签: java for-loop recursion

我目前正在编写一个程序,其中必须使用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
        }   

    }
}

1 个答案:

答案 0 :(得分:0)

代替您的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);
    }
}