Нахождения суммы - Prolog
Формулировка задачи:
Есть задание :
вводить два числа n и d , результатом вывести суму, которая ищем как n+(n-d)+(n-d-d)+..
Пример: n=11, d=3 result=11+8+5+2=26
есть такой код:
Но что-то он не работает. Может кто-то помочь?
Решение задачи: «Нахождения суммы»
textual
Листинг программы
sum1(N,D,N):-N<D. sum1(N,D,S):-N2 is N-D, sum1(N2,D,S1), S is S1+N2.
Объяснение кода листинга программы
Код решает задачу вычисления суммы чисел от 1 до N при помощи рекурсии. Переменные в коде:
- N - число, для которого необходимо вычислить сумму (N <= D).
- D - шаг, значение которого определяет разность между текущим числом и следующим (N < D).
- S - результат вычисления суммы чисел от 1 до N при помощи рекурсивного вызова функции sum1.
- N2 - промежуточная переменная, используемая в рекурсивном вычислении суммы чисел от N до 1. Вычисление суммы происходит следующим образом:
- Если N меньше D, то рекурсивный вызов функции sum1 происходит с аргументами N, D, S.
- Если N равно или больше D, то рекурсивный вызов функции sum1 происходит с аргументами N2, D, S1, где S1 - результат вычисления суммы чисел от 1 до N-D.
- Значение переменной S устанавливается равным сумме S1 и N2. В результате выполнения кода будет вычислена и выведена на экран сумма чисел от 1 до N.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д