с++ помогите с формулой произведения

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>


int main()
{
    setlocale(0, "rus");
    int r;
    float x;
    float sum = 1;
    printf("Введите число");
    scanf_s("%d", &r);
    scanf_s("%f", &x);
    for (int n=0; n<=r; n++)
    {
        sum = sum * (1 + ((pow(-1, n - 1)*pow(x, 2 * n)) / ((n + 2)*(n + 1))));
    }
    printf("%f", sum);
}

Задание

P.S Неправильно подсчитывает


Ответы (1 шт):

Автор решения: Harry

Вот функция, которая для данных x и k вычисляет произведение:

double Prod(double x, unsigned int k)
{
    double p = 0.5, term = -0.5; // Значение для n==0
    x *= x;
    for(unsigned int n = 1; n <= k; ++n)
        p *= 1 + (term *= -x*n/(n+2));
    return p;
}

Ну, а вставить ее в нужное место в программу - это вы уж сами должны сообразить :)

→ Ссылка