Найти количество сложений для вычисления n-го числа Фибоначчи рекурсивным и обычным алгоритмом. - C (СИ)

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

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

Найти количество сложений для вычисления n-го числа Фибоначчи рекурсивным и обычным алгоритмом. Результаты выдать в виде таблицы. Помогите плиз. обычным могу сделать, а вот как рекурсивным не знаю Обычный алгоритм:
#include<stdio.h>
#include<math.h>
#define n 11
int main()
{
     static int fib[n];
     int i,kol=0;
     fib[0]=1;
     fib[1]=1;
     for(i=0;i<n;i++)
     {
         fib[i+1]=fib[i-1]+fib[i];
         if(i+2<n)
     {
            kol++;
     }
     }

     for(i=0;i<n;i++)
     {
         printf(" %d",fib[i]);
     }
     printf("\n");
     printf("%d",kol);
}
...

Решение задачи: «Найти количество сложений для вычисления n-го числа Фибоначчи рекурсивным и обычным алгоритмом.»

textual
Листинг программы
#include<stdio.h>
#include<math.h>
 
//cnt - глобальная переменная!!! 
int cnt=0;
 
int fib(int n)
{
   if((n==1)||(n==2))
      return 1;
   else
   {
      ++cnt;
      return fib(n-1)+fib(n-2);
   }
}
int main()
{
        int n=9;
        printf("Fibbonacci number #%d = %d\n", n, fib(n));
        printf("Addition count = %d\n", cnt);
        return 0;
}

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

  1. Подключение необходимых библиотек для работы с файлами и математическими вычислениями.
  2. Объявление глобальной переменной cnt, которая будет использоваться для подсчета операций в рекурсивном алгоритме.
  3. Рекурсивная функция fib(int n), которая вычисляет n-ое число Фибоначчи.
  4. Проверка базового случая: если n равно 1 или 2, функция возвращает 1.
  5. Увеличение счетчика операций cnt на 1.
  6. Рекурсивный вызов функции fib(n-1) и fib(n-2) для вычисления n-ого числа Фибоначчи.
  7. В основной функции main() задается значение переменной n равное 9.
  8. Вызывается функция fib(n) для вычисления 9-го числа Фибоначчи и сохранения результата в переменную result.
  9. Выводится на экран значение result и количество операций cnt.
  10. Программа возвращает 0, заканчивая свое выполнение.

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


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

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

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