Найти количество сложений для вычисления 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;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и математическими вычислениями.
- Объявление глобальной переменной
cnt
, которая будет использоваться для подсчета операций в рекурсивном алгоритме. - Рекурсивная функция
fib(int n)
, которая вычисляет n-ое число Фибоначчи. - Проверка базового случая: если n равно 1 или 2, функция возвращает 1.
- Увеличение счетчика операций
cnt
на 1. - Рекурсивный вызов функции
fib(n-1)
иfib(n-2)
для вычисления n-ого числа Фибоначчи. - В основной функции
main()
задается значение переменнойn
равное 9. - Вызывается функция
fib(n)
для вычисления 9-го числа Фибоначчи и сохранения результата в переменнуюresult
. - Выводится на экран значение
result
и количество операцийcnt
. - Программа возвращает 0, заканчивая свое выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д