Для заданного списка определить максимальное количество идущих подряд нулей - Lisp
Формулировка задачи:
Для заданного списка определить максимальное количество идущих подряд нулей, без использование встроенных функций.
Считается, что списки имеют многоуровневую структуру.
Решение задачи: «Для заданного списка определить максимальное количество идущих подряд нулей»
textual
Листинг программы
(defun max-zero-seq (w &optional (n 0) (m 0) f &aux (a (car w)) (d (cdr w))) (cond ((null w) (max n m)) ((listp a) (max-zero-seq a 0 (max-zero-seq d 0 m nil) nil)) ((zerop a) (max-zero-seq d (1+ n) m t)) ((max-zero-seq d 0 (if f (max n m) m) nil)))) > (max-zero-seq '(1 2 0 0 0 (2 0 0 0 0 0 0 3) 0 0 0 0)) 6 > (max-zero-seq '(1 0 0 4 0 0 (1 0 0 0 0 3 (6 0 0 0) 1) 0 0 0 5)) 4 > (max-zero-seq '(0)) 1 > (max-zero-seq '()) 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д