Почему рекурсивная функция возвращает 0?

135
19 декабря 2018, 05:50
#include "pch.h"
#include <iostream>
#include <math.h>
using namespace std;
int func(double x, int N)
{
    if (N == 1) {
        return 1;
    }
    else {
        int a;
        if (N % 2 != 0) {
            a = 1;
        }
        else {
            a = -1;
        }
        return a * ((N*(N + 1))/2)*(pow(x, (N - 1))) + func(x, (N - 1));
    }
}
int main()
{
    float x;
    double N;
    cin >> x >> N;
    cout << 1/(pow((1+x), 3)) << ' ' << func(x, (N)) << endl;
    return 0;
}

Программа выводит 0.5 2 - > 0.2969 0, должно выбить - 0.2969 -0.5

READ ALSO
Инициализация обычная и через :v_(v)

Инициализация обычная и через :v_(v)

Недавно возникла проблема, что программа не работала при инициализации через :v_(v), а при обычном сработало, но разобраться, в чем проблема,...

150
Случайные числа с++

Случайные числа с++

Как правильно сгенерировать случайные числа от -20 до 70

188
Ошибка с инициализацией переменной

Ошибка с инициализацией переменной

Я не могу понять почему компилятор выдает мне ошибку Ошибка C4700 использована неинициализированная локальная переменная "TempNode"Вот мой код:

177
C++ Firebase. Какую библиотеку выбрать?

C++ Firebase. Какую библиотеку выбрать?

Возникла необходимость работы с Fireabase в C++

170