Запрограммируйте функцию-предикат, проверяющую, что три из четырёх цифр в числе совпадают - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д