Сумма чисел, кратных указанному - Prolog

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

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

не подскажите, как можно без списков реализовать нахождение суммы чисел кратных указанному значению от «начального значения» до «конечного значения»?

Решение задачи: «Сумма чисел, кратных указанному»

textual
Листинг программы
domains
int=integer
 
predicates
sum(int,int,int,int)
 
clauses
sum(E,E,_,0).
sum(B,E,K,S) :- B<E, (B mod K)=0, B1=B+1, sum(B1,E,K,S1), S=S1+B.
sum(B,E,K,S) :- B<E, (B mod K)<>0, B1=B+1, sum(B1,E,K,S).

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

  1. В начале кода определены домены и предикаты: — Домен int — это целочисленный тип данных. — Предикат sum(int,int,int,int) — это функция, которая принимает четыре аргумента типа int и возвращает результат.
  2. Затем определены клаузы (условия) для предиката sum: — Клауза sum(E,E,,0) — это базовый случай, когда сумма чисел равна нулю. Здесь E — это первое и второе аргументы функции, а — это третье и четвертое аргументы функции. — Клауза sum(B,E,K,S) :- B<E, (B mod K)=0, B1=B+1, sum(B1,E,K,S1), S=S1+B. — это рекурсивный случай, когда число B кратно K. Здесь B — это первый аргумент функции, E — это второй аргумент функции, K — это третий аргумент функции, S — это четвертый аргумент функции, S1 - это результат вызова функции с аргументами B1, E, K и S. — Клауза sum(B,E,K,S) :- B<E, (B mod K)<>0, B1=B+1, sum(B1,E,K,S). — это рекурсивный случай, когда число B не кратно K. Здесь B — это первый аргумент функции, E — это второй аргумент функции, K — это третий аргумент функции, S — это четвертый аргумент функции. Таким образом, код вычисляет сумму чисел, кратных указанному числу K, и сбрасывает счётчик суммы на значение числа B.

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


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

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

9   голосов , оценка 3.778 из 5
Похожие ответы