Вычисление суммы кубов - Lisp
Формулировка задачи:
Решение задачи: «Вычисление суммы кубов»
(defun sum-qube (n1 n2) (iter (for i from n1 to n2) (summing (* i i i)))) ==> sum-qube (sum-qube 25 55) ==> 2281600 (defun sum-qube (n1 n2) (apply '+ (mapcar #'(lambda (x) (^ x 3)) (range n1 n2)))) ==> sum-qube (sum-qube 25 55) ==> 2281600
Объяснение кода листинга программы
В обоих кусках кода определена функция с именем sum-qube, которая принимает два аргумента, n1 и n2. В первом куске кода функция использует цикл iter и вложенный цикл for для перебора чисел от n1 до n2. Внутри циклов происходит вычисление куба числа i и результат умножается на i. Все полученные значения суммируются. Во втором куске кода функция использует функцию apply для применения + к результатам функции mapcar. Функция mapcar применяет к числам от n1 до n2 (включительно) операцию возведения в куб (^), а затем полученные значения преобразуются в список. Затем функция apply суммирует все элементы списка. В обоих случаях результат выполнения функции sum-qube со значениями n1=25 и n2=55 равен 2281600.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д