Объясните рекурсию - 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;

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

  1. В данном коде реализована процедура вычисления чисел Фибоначчи.
  2. Передача значения n в качестве параметра, определяет количество чисел Фибоначчи, которые будут вычислены.
  3. Значения первых двух чисел Фибоначчи (0 и 1) инициализируются непосредственно в процедуре.
  4. Далее, в цикле, начиная с i=1 и до i=n, происходит вычисление каждого следующего числа Фибоначчи на основе предыдущих двух.
  5. Результат каждого вычисления сохраняется в массиве Fibonacci, а также передается в качестве значения для выходного параметра outnum.
  6. Таким образом, после выполнения процедуры, в массиве Fibonacci будут храниться n первых чисел Фибоначчи, а в outnum будет содержаться последнее вычисленное число Фибоначчи.

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


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

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

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