Определите умножение целых чисел (*2 x y) через сложение и вычитание - Lisp

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

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

3. Определите умножение целых чисел (*2 x y) через сложение и вычитание.

Решение задачи: «Определите умножение целых чисел (*2 x y) через сложение и вычитание»

textual
Листинг программы
(defun *2 (x y)
  (cond ((or (zerop x) (zerop y)) 0)
          ((= x 1) y)
          (t (+ y (*2 (- x 1) y)))))

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

В коде определён функционал для умножения двух целых чисел (*2 x y) через сложение и вычитание. Список шагов по порядку:

  1. В первой ветке условного оператора (cond) проверяется, равна ли хотя бы одна из переменных x и y нулю. Если это так, то возвращается 0.
  2. Во второй ветке условного оператора (cond) проверяется, равно ли значение переменной x единице. Если это так, то возвращается значение переменной y.
  3. В третьей ветке условного оператора (cond) выполняется проверка, не равны ли обе переменные x и y нулю. Если это так, то возвращается 0.
  4. В последней ветке условного оператора (cond) выполняется проверка, не равно ли значение переменной x нулю. Если это так, то возвращается результат сложения переменной y и результата вычитания удвоенного значения переменной x, который также умножается на значение переменной y. Таким образом, результатом работы функции будет значение, которое получается путём умножения двух целых чисел через сложение и вычитание.

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


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

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

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