Разработать функцию вычитания - Lisp

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

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

Разработать арифметическую функцию SUB вычитания натурального числа, используя только функцию вычитания (SUB1), рекурсию, COND и встроенные логические функции.

Решение задачи: «Разработать функцию вычитания»

textual
Листинг программы
  1. (defun sub-n (x y)
  2.     (cond ((= x y) 0)
  3.         (T(1+ (sub-n (1- x) y)))))
  4. SUB-N
  5. (defun sub (x y)
  6.     (cond ((>= x y) (sub-n x y))
  7.             (T (-(sub-n y x)))))
  8. SUB
  9. (SUB 100 10)
  10. 90
  11. (SUB 10 100)
  12. -90

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

В коде представлены две функции: sub-n и sub.

  1. Функция sub-n принимает два аргумента x и y.
  2. Если x равно y, то возвращает 0.
  3. Иначе, рекурсивно вызывает себя с аргументами x и y, уменьшенным на единицу. Функция sub принимает два аргумента x и y.
  4. Если x больше или равно y, то рекурсивно вызывает функцию sub-n с аргументами x и y.
  5. Иначе, возвращает разность y и x (т.е. -(sub-n y x)). В последней строке кода вызывается функция sub с аргументами 100 и 10. Результатом выполнения является число 90.

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


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

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

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы