Произведение числового ряда - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д