Рекурсия с использованием цикла for - PullRequest
0 голосов
/ 02 ноября 2018

В настоящее время я пишу программу, в которой мне нужно вычислить число рекурсивно, используя цикл 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 голосов
/ 02 ноября 2018

Вместо вашего цикла 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...