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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
 
long dBad(int n)
{
    if (n <= 2)
        return n-1;
    else
        return (n-1)*(dBad(n-1)+dBad(n-2));
}
 
long dGood(int n, int c, int p,int k)
{
    if (n == k-1)
        return c;
    else
        return dGood(n,(k-1)*(p+c),c,k+1);
}
 
int main(int argc, char* argv[])
{
 
    int k;
 
        k=12;
 
    printf("k=%d d(k)=%d\n",k,dBad(k));
    printf("k=%d d(k)=%d\n",k,dGood(k,1,0,1));
 
    return 0;
}

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

  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
Похожие ответы