Посчитать первые 10 чисел Фибоначчи рекурсивно - C (СИ)
Формулировка задачи:
посчитать первые 10 чисел фибоначи с помощью рекурсии
Решение задачи: «Посчитать первые 10 чисел Фибоначчи рекурсивно»
textual
Листинг программы
#include <stdio.h> typedef unsigned long long ULL; ULL fib_rec(ULL acc, ULL prev, unsigned num) { printf("%lld\n", acc); return num ? fib_rec(acc+prev, acc, num-1) : acc; } ULL fib(unsigned num) { return fib_rec(0, 1, num); } int main(void) { fib(10); return 0; }
Объяснение кода листинга программы
В данном коде на языке C реализуется вычисление первых 10 чисел Фибоначчи с использованием рекурсии.
- Создается функция
fib_rec
, которая принимает три аргумента:acc
- текущее значение аккумулятора,prev
- предыдущее значение аккумулятора,num
- количество вызовов функции. - Внутри функции происходит печать текущего значения аккумулятора с помощью функции
printf
. - Затем функция рекурсивно вызывает саму себя, передавая в качестве аргументов обновленное значение аккумулятора, старое значение аккумулятора и уменьшенное на единицу количество вызовов функции.
- Если количество вызовов функции равно нулю, то функция просто возвращает текущее значение аккумулятора.
- Создается функция
fib
, которая принимает одно целочисленное значение - количество чисел Фибоначчи, которые необходимо вычислить. - Внутри функции происходит вызов функции
fib_rec
, передавая в качестве аргумента значение 0, 1 и количество чисел Фибоначчи. - В функции
main
вызывается функцияfib
с аргументом 10. - В функции
main
также присутствует строкаreturn 0;
, которая обозначает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д