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

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

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

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

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

textual
Листинг программы
  1. (defun task (n q k &optional (s (replicate 0 10)))
  2.  (if (= k (nth q s)) t
  3.     (if (zerop n) nil
  4.         (let ((m (% n 10))
  5.               (p (\ n 10)))
  6.              (setf (nth m s) (+ 1 (nth m s)))
  7.              (task p q k s)))))
  8.  
  9.  
  10. (task 564323535 5 3)
  11.  
  12. ==> T
  13.  
  14. (task 564323535 8 3)
  15.  
  16. ==> Nil

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


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

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

11   голосов , оценка 3.364 из 5

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

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

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