Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Prolog] сумма цифр натурального числа


Автор: natasha92 3.11.2009, 18:37
Создайте предикат, вычисляющий сумму цифр натурального числа.
Помогите решить. smile 

Автор: Pitlord 8.11.2009, 18:11
Синтаксис указанного языка я не знаю, но сам алгоритм очень прост:

1. Получение значения младшего разряда числа ("цифры"): N mod 10 (деление по модулю) и прибавление к переменной, хранящей сумму цифр.
2. Целочисленное деление числа N на 10.
3. Если N не равно 0, то возвращение к пункту # 1.

Автор: ИванМ 8.11.2009, 18:49
Для turbo prolog так:
Код

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).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)