Произведение числового ряда - Lisp
Формулировка задачи:
Прослушав одну лекцию в универе пытаюсь решить задачу. Помогите пожалуйста, не могу найти ошибку в коде.
(defun ffff (i n) (do ((rez 1)) ((<= i n) rez) (setq rez (* (/ (+ i 1) (+ i 2)))) (setq n (+ n 1)) ) ) (ffff 1 4)
Решение задачи: «Произведение числового ряда»
textual
Листинг программы
(defun ffff (n) (do ((i 1) (rez 1)) ((> i n) rez) (setq rez (* rez (/ (+ i 1) (+ i 2)))) (setq i (+ i 1)) ) ) (ffff 4)
Объяснение кода листинга программы
В данном коде определен функционал с именем ffff, который принимает в качестве аргумента n. Для решения задачи используется цикл do, который выполняется до тех пор, пока значение переменной i не станет больше n. Внутри цикла происходит следующее:
- Переменная rez инициализируется единицей.
- Переменная i инициализируется единицей.
- Результат умножения rez на значение (i+2)/(i+1) сохраняется в переменной rez.
- Значение i увеличивается на единицу.
- Цикл продолжается до тех пор, пока значение i не станет больше n. После выполнения цикла, функционал возвращает полученный результат. Затем, вызывается функция ffff с аргументом 4.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д