Запрограммируйте функцию-предикат, проверяющую, что три из четырёх цифр в числе совпадают - Lisp

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

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

Дано натуральное четырёхзначное число, т.е. в диапазоне [1000,9999]. Запрограммируйте функцию-предикат, проверяющую, что три из четырёх цифр совпадают. Вроде бы все просто, но я путаюсь с тем как число в список поместить... В Lispе я совсем новичок.

Решение задачи: «Запрограммируйте функцию-предикат, проверяющую, что три из четырёх цифр в числе совпадают»

textual
Листинг программы
(defun task (n q k &optional (s (replicate 0 10)))
 (if (= k (nth q s)) t
    (if (zerop n) nil
        (let ((m (% n 10))
              (p (\ n 10)))
             (setf (nth m s) (+ 1 (nth m s)))
             (task p q k s)))))
 
 
(task 564323535 5 3)
 
==> T
 
(task 564323535 8 3)
 
==> Nil

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


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

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

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