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