Project Euler: Multiples of 3 and 5 - Lisp
Формулировка задачи:
Решение задачи: «Project Euler: Multiples of 3 and 5»
(defun sum-35 (n) (let ((s 0)) (iter (for i from 3 to n by 3) (summing i into s)) (iter (for i from 5 to n by 5) (when (not (zerop (rem i 3))) (summing i into s))) s)) ==> sum-35 (sum-35 999) ==> 233168
Объяснение кода листинга программы
В коде представлена функция sum-35
, которая принимает один аргумент n
. Внутри функции создаётся переменная s
со значением 0, которая будет использоваться для подсчёта суммы.
С помощью цикла iter
с шагом 3 перебираются все числа от 3 до n
с шагом 3. Для каждого числа i
в цикле проверяется, делится ли оно на 3 без остатка. Если да, то число i
добавляется к переменной s
.
Затем с помощью цикла iter
с шагом 5 перебираются все числа от 5 до n
с шагом 5. Для каждого числа i
в цикле проверяется, делится ли оно на 3 без остатка. Если нет, то число i
добавляется к переменной s
.
В конце функции возвращается значение переменной s
.
Значение функции sum-35
при аргументе 999 равно 233168.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д