Функция рекурсивная для итеративной, эта функция задана g (n) = 2 * g (n-1) + 3 * g (n-2) - PullRequest
0 голосов
/ 25 апреля 2019

Мне нужно написать итерационную функцию для этой рекурсивной функции.

int funcRec(int n){
    if(n>1) {
        return 2*funcRec(n - 1) + 3*funcRec(n - 2);
    }else{
        return n;
    }
}

1 Ответ

0 голосов
/ 25 апреля 2019

Попробуйте это

int funcIter(int n) {  
    int value0 = 0;
    int value1 = 1;
    int res = n;

    for (int i = 2; i <= n; i++) {
        res = 2 * value1 + 3 * value0;
        value0 = value1;
        value1 = res;
    }

    return res;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...