Рекурсивная сила - PullRequest
2 голосов
/ 04 мая 2020

Я пытаюсь вычислить мощность числа, используя рекурсию. Здесь я пытаюсь установить базовый аргумент как base * pow и уменьшать аргумент pow каждый раз.

Я получаю сообщение об ошибке: source.cpp:21:1: warning: control reaches end of non-void function [-Wreturn-type]

int power(int base, int pow){
    if(pow!= 0){
        return power(base* pow, pow- 1);
    }
    if(pow== 0){
        return base;
    }
}
int main() {

    int x= power(2, 3);
    cout<<x;
}

Что такое Я тут не так делаю?

1 Ответ

3 голосов
/ 04 мая 2020

Вы должны сообщить компилятору, что функция всегда возвращает значение (хотя в этом случае это очевидно). Кроме того, ваша рекурсивная формула неверна. Вместо этого вы можете сделать что-то вроде этого:

int power(int base, int pow){
    if(pow != 0){
        return base * power(base, pow - 1);
    }

    return 1;
}

Вот вам демо .

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