Разработать рекурсивную функцию, которая вычисляет значение следующего выражения - C (СИ)

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

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

Разработать рекурсивную функцию, которая вычисляет значение следующего выражения: d(1)=0; d(2)=1; d(n)=(n-1)*[d(n-1)+d(n-2)] И на основе разработанной функции найти значение выражения для заданного натурального n.

Решение задачи: «Разработать рекурсивную функцию, которая вычисляет значение следующего выражения»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. long dBad(int n)
  4. {
  5.     if (n <= 2)
  6.         return n-1;
  7.     else
  8.         return (n-1)*(dBad(n-1)+dBad(n-2));
  9. }
  10.  
  11. long dGood(int n, int c, int p,int k)
  12. {
  13.     if (n == k-1)
  14.         return c;
  15.     else
  16.         return dGood(n,(k-1)*(p+c),c,k+1);
  17. }
  18.  
  19. int main(int argc, char* argv[])
  20. {
  21.  
  22.     int k;
  23.  
  24.         k=12;
  25.  
  26.     printf("k=%d d(k)=%d\n",k,dBad(k));
  27.     printf("k=%d d(k)=%d\n",k,dGood(k,1,0,1));
  28.  
  29.     return 0;
  30. }

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

  1. Включаем стандартную библиотеку
  2. Определяем функцию dBad, которая принимает целочисленный аргумент n и возвращает результат вычисления выражения
  3. Используем оператор if для проверки условия, если n меньше или равно 2, то возвращаем n-1
  4. В противном случае, рекурсивно вызываем функцию dBad с аргументами n-1 и n-2, затем умножаем результат на (n-1) и возвращаем полученное значение
  5. Определяем функцию dGood, которая принимает целочисленные аргументы n, c, p и k, и возвращает результат вычисления выражения
  6. Используем оператор if для проверки условия, если n равно k-1, то возвращаем c
  7. В противном случае, рекурсивно вызываем функцию dGood с аргументами n, (k-1)*(p+c), c и k+1
  8. В функции main определяем целочисленную переменную k и присваиваем ей значение 12
  9. Вызываем функцию dBad с аргументом k и выводим результат на экран
  10. Вызываем функцию dGood с аргументами k, 1, 0 и 1, и выводим результат на экран
  11. Завершаем программу возвратом 0 из функции main

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


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

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

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы