Вычислить сумму ряда - C (СИ) (70435)
Формулировка задачи:
Help помогите написать программу.Вычислить сумму ряда (1+n!)/(2+n!) с позиции N до позиции M. Функцию вычисления суммы реализовать рекурсивно. на си
Решение задачи: «Вычислить сумму ряда»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
double sum(int k,int m, double f, double s)
{
double ff;
if (k > m) return s;
ff=f*(double)(k);
return sum(k+1,m,ff,s+(1.0+ff)/(2.0+ff));
}
int main(int argc, char *argv[])
{
int i,n,m;
double r,f;
printf("n="); scanf("%d",&n);
printf("m="); scanf("%d",&m);
f=1.0;
for (i=1; i<n; i++) f*=(double)i;
r=sum(n,m,f,0.0);
printf("s=%lf\n",r);
system("PAUSE");
return 0;
}
Объяснение кода листинга программы
Вычисление суммы ряда чисел:
- Ввод через клавиатуру чисел n и m.
- Инициализация переменной f единицей.
- Умножение f на каждое из чисел от 1 до n-1.
- Вызов функции sum с передачей в нее параметров n,m,f,0.
- Вывод результата на экран.
- Ожидание нажатия любой клавиши.
- Конец работы.