Произведение числового ряда - Lisp

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

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

Прослушав одну лекцию в универе пытаюсь решить задачу. Помогите пожалуйста, не могу найти ошибку в коде.
Листинг программы
  1. (defun ffff (i n)
  2. (do ((rez 1))
  3. ((<= i n) rez)
  4. (setq rez (* (/ (+ i 1) (+ i 2))))
  5. (setq n (+ n 1))
  6. )
  7. )
  8. (ffff 1 4)

Решение задачи: «Произведение числового ряда»

textual
Листинг программы
  1. (defun ffff (n)
  2.   (do ((i 1) (rez 1))
  3.       ((> i n) rez)
  4.     (setq rez (* rez (/ (+ i 1) (+ i 2))))
  5.     (setq i (+ i 1))
  6.   )
  7. )
  8.  
  9. (ffff 4)

Объяснение кода листинга программы

В данном коде определен функционал с именем ffff, который принимает в качестве аргумента n. Для решения задачи используется цикл do, который выполняется до тех пор, пока значение переменной i не станет больше n. Внутри цикла происходит следующее:

  1. Переменная rez инициализируется единицей.
  2. Переменная i инициализируется единицей.
  3. Результат умножения rez на значение (i+2)/(i+1) сохраняется в переменной rez.
  4. Значение i увеличивается на единицу.
  5. Цикл продолжается до тех пор, пока значение i не станет больше n. После выполнения цикла, функционал возвращает полученный результат. Затем, вызывается функция ffff с аргументом 4.

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


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

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

7   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы