Списки. Применяющие и отображающие функционалы - Lisp
Формулировка задачи:
Всем снова здрасте !
Нужна помощь со следующей задачкой :
дальше не получилось .
Но подошёл преподаватель , сказал всё не верно ... Говорит надо чтобы , например ввёл 20 и выдало 20 натуральных чисел , дальше по условию... Кто не правильно понял условие - не знаю.
памагите !)
На языке Lisp сформировать список разностей соседних элементов в последовательности квадратов натуральных чисел. Убедиться , что эта последовательность представляет собой список последовательных нечётных чисел . Использовать применяющие и\или отображающие функционалы .
Как я понял условие: дан список, допустим (1 2 3 4) для начала находим квадрат элементов (1 4 9 16) потом находим разность соседних (-3 -7) Квадраты элементов списка нашёл(defun F (w) (list (mapcar #'(lambda (x) (if (>= x 0) (* x x) x)) w))))
Решение задачи: «Списки. Применяющие и отображающие функционалы»
textual
Листинг программы
(defun odd-seqp (n) (when (evenp n) (odd-seq n))) (defun odd-seq (n &optional (m 1)) (cond ((> m n)) ((evenp (- (* m m) (expt (1+ m) 2))) nil) ((odd-seq n (+ m 2))))) > (odd-seqp 100) T
Объяснение кода листинга программы
В коде определены две функции:
- odd-seqp — принимает один аргумент n и возвращает t, если n — нечётное число, и nil в противном случае.
- odd-seq — принимает два аргумента n и m, и возвращает t, если выполняется хотя бы одно из условий: — m больше n; — n чётное и (m * m) + (expt (1+ m) 2) также чётное. В последней строке кода вызывается функция odd-seqp с аргументом 100, и результатом будет t.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д