Посчитать сумму ряда при помощи функции и рекурсии - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите дописать код.

Задание:

посчитать суму ряда (x/(n!)), суму считать при помощи функции и рекурсии. Я все уже перепробовал, ничего не помогает.
#include <stdio.h>
#include <conio.h>
int fact (int n);
int sum (int n, int x);
int main ()
{
    int N, f, x;
    float suma=0;
    printf ("Enter N: ");
    scanf ("%d", &N);
    f=fact(N);
    printf ("Enter X: ");
    scanf ("%d", &x);
    suma= sum (N, x);
    printf ("Suma = %0.2f", suma);
    getch ();
    return 0;
}
int fact (int n)
{
    return (n>1)? n*fact(n-1):1;
}
int sum (int n, int x)
{
    return (n>0)? ((x)/(fact(n))+((x)/(fact(n-1)))):1;
}

Решение задачи: «Посчитать сумму ряда при помощи функции и рекурсии»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
double Sum(double x, double eps, double f, double n, double s)
{
       double a=x/f;
       s+=a;
       if (a<eps) return s;
       return Sum(x,eps,f*(n+1),n+1,s);
}       
 
int main(int argc, char *argv[])
{
 
  double y,x,eps;
  printf("x=");
  scanf("%lf",&x);
  printf("eps=");
  scanf("%lf",&eps);
  printf("Sum=%lf\n",Sum(x,eps,1,1,0));
  system("PAUSE");  
  return 0;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы
  2. Определяется функция Sum, которая принимает в качестве аргументов double x, double eps, double f, double n, double s.
  3. Внутри функции происходит вычисление значения переменной a как частное x на f.
  4. Значение переменной a добавляется к переменной s.
  5. Проверяется условие if (a<eps), если оно истинно, то функция возвращает значение s.
  6. В противном случае функция вызывает саму себя, передавая в качестве аргументов x, eps, f*(n+1), n+1, s.
  7. В функции main() считываются значения переменных x и eps с помощью функции scanf().
  8. Вызывается функция Sum(x, eps, 1, 1, 0), где 1-первый аргумент, 1-это начальное значение n, а 0-это начальное значение s.
  9. Выводится результат вычисления функции Sum с помощью функции printf().
  10. Выполняется команда system(PAUSE), которая приостанавливает выполнение программы до нажатия клавиши.
  11. Функция main() возвращает 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы