Объясните рекурсию - C (СИ)
Формулировка задачи:
Не случайно в заголовке "Объясните".
Тут очень много тредов на эту тему, но все о конкретном примере.
Так получилось, что до конца не понимаю что это такое.
Определение я знаю - функция, которая вызывает саму себя или другую функцию, которая потом вызывает первую.
Проблема в том что из этого у меня в голове рисуется бесконечный цикл типа
и
Может кто-нибудь пожалуйста привести примеры обоих типов рекурсии, чтобы простые в понимании и грамотных в исполнении? Заранее благодарю )
int a () { a(); }
int a () { b(); } int b(){ a(); }
Решение задачи: «Объясните рекурсию»
textual
Листинг программы
procedure Fibonacci ( num : integer, var outnum : integer ); var i : integer; begin Fibonacci(1) := 1; Fibonacci(2) := 2; for i := 1 to n do begin Fibonacci(i) := Fibonacci(i-1) + Fibonacci(i-2); outnum := Fibonacci(i); end;
Объяснение кода листинга программы
- В данном коде реализована процедура вычисления чисел Фибоначчи.
- Передача значения n в качестве параметра, определяет количество чисел Фибоначчи, которые будут вычислены.
- Значения первых двух чисел Фибоначчи (0 и 1) инициализируются непосредственно в процедуре.
- Далее, в цикле, начиная с i=1 и до i=n, происходит вычисление каждого следующего числа Фибоначчи на основе предыдущих двух.
- Результат каждого вычисления сохраняется в массиве Fibonacci, а также передается в качестве значения для выходного параметра outnum.
- Таким образом, после выполнения процедуры, в массиве Fibonacci будут храниться n первых чисел Фибоначчи, а в outnum будет содержаться последнее вычисленное число Фибоначчи.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д