Замена цикла на рекурсию - Lisp

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

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

Добрый день. Как можно в рекурсию переделать такой цикл: от а=1 до 10 от с=15 до 20 е=а+с //другие действия .... кто-то может помочь?

Решение задачи: «Замена цикла на рекурсию»

textual
Листинг программы
loop(a, c)
    if ((a > 10) || (c > 15)) {
        return 1234;
    } else {
        e = a + c;
        // другие действия
        return loop(a + 1, c + 1);
    }
}

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

В этом коде определен рекурсивный функционал с именем loop, который принимает два аргумента a и c. Если условие ((a > 10) || (c > 15)) истинно, то возвращается значение 1234. В противном случае, результатом будет значение e, равное сумме a и c. Затем, функция вызывает саму себя с аргументами (a + 1) и (c + 1).

  1. loop(a, c) - функция loop с двумя позиционными аргументами a и c
  2. Если условие ((a > 10) || (c > 15)) истинно, то возвращается 1234
  3. В противном случае, результатом будет значение e, равное сумме a и c
  4. Функция вызывает саму себя с аргументами (a + 1) и (c + 1)

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


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

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

8   голосов , оценка 4.125 из 5