Алгоритм:
1. Получение значения младшего разряда числа ("цифры"): N mod 10 (деление по модулю) и прибавление к переменной, хранящей сумму цифр.
2. Целочисленное деление числа N на 10.
3. Если N не равно 0, то возвращение к пункту # 1.
Код:
predicates
sum(integer, integer)
clauses
sum(0, Y):-
Y=0, !.
sum(X, Y):-
Z1=X mod 10, Z2=X div 10, sum(Z2, Q), Y=Z1+Q.
goal
write("Enter the number: "),
readint(X),
sum(X, Y),
write("Sum=", Y).
|