Подсчитать количество и сумму цифр целого N - Lisp

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

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

Подсчитать число и сумму цифр целого N.
(defun numb (n)
(cond
        ((= 0 (floor n 10)) 1)
        (t (+ 1 (numb (floor n 10))))))
 
(defun sum (n) 
(cond 
          ((< n 10) n)
          (t  ( +  (rem n 10) (sum (truncate  ( / n 10)))))
))
(defun res (n)
         (cons (numb n) (sum n)))
МНЕ нужно упростить до 1 функции , чтобы cons возвращался для каждой

Решение задачи: «Подсчитать количество и сумму цифр целого N»

textual
Листинг программы
(defun sum-and-number-of-digits (n)
  (cond
    ((= 0 n) '(0 1))
    (t (list (+ (rem n 10) (car (sum-and-number-of-digits (floor n 10))))
             (+ 1 (cadr (sum-and-number-of-digits (floor n 10))))))))

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


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

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

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