Посчитать количество рекурсий в программе - C (СИ)

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

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

Всем привет, помогите посчитать количество рекурсий в программе.
Листинг программы
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <ctime>
  4. unsigned long long Fib(unsigned long long N)
  5. {
  6. if (N<=1)
  7. return (N);
  8. else
  9. return Fib(N-1)+Fib(N-2);
  10. }
  11. int main ()
  12. {
  13. setlocale(LC_ALL, "Rus");
  14. unsigned long long N;
  15. printf ("Введите число N");
  16. scanf("%d",&N);
  17. for(int i;i<=N;i++)
  18. printf ("%d\n",Fib(i));
  19. printf("runtime=%d\n",clock()/1000);
  20. }

Решение задачи: «Посчитать количество рекурсий в программе»

textual
Листинг программы
  1. unsigned count = 0;
  2. unsigned long long Fib(unsigned long long N)
  3. {
  4.     if(N <= 1) return N;
  5.     else{
  6.         ++count;
  7.         return Fib(N-1)+Fib(N-2);
  8.     }
  9. }
  10.  
  11. int main(void)
  12. {
  13.     printf("Fib: %d\n", Fib(21));
  14.     printf("Count Fib: %d\n", count);
  15.     return 0;
  16. }

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

  1. Объявлена переменная count типа unsigned для подсчета количества рекурсий.
  2. Объявлена функция Fib типа unsigned long long, которая принимает целочисленный аргумент N.
  3. В функции Fib проверка: если N меньше или равно 1, то возвращается N (базовый случай).
  4. В функции Fib если базовый случай не наступил, то происходит инкремент переменной count и вызывается рекурсивный вызов функции Fib с аргументами N-1 и N-2.
  5. В функции Fib возвращается сумма результатов рекурсивных вызовов функции Fib с аргументами N-1 и N-2.
  6. В функции main вызывается функция Fib с аргументом 21.
  7. В функции main выводится значение переменной count, которая содержит количество рекурсий.
  8. В функции main выводится значение функции Fib с аргументом 21.
  9. В функции main возвращается 0, что означает успешный конец работы программы.

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


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

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

15   голосов , оценка 4.133 из 5

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

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

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