Сумма чисел от 1 до N на Prolog

      Комментарии к записи Сумма чисел от 1 до N на Prolog отключены

В этой теме 1 ответ, 1 участник, последнее обновление  Васильев Владимир Сергеевич 11 мес., 1 неделя назад.

  • Автор
    Сообщения
  • #3046

    questioner
    Участник

    Помогите решить задачу на Visual Prolog:

    Создать предикат, вычисляющий по натуральному числу N сумму чисел от 1 до N

    Т.е. нужно найти сумму ряда: 1+2+3+...+N.

  • #3047

    predicates
    nondeterm sum(integer, integer)
    clauses
    sum(1, 1):-!.
    sum(N, Sum):-
    NextN = N - 1,
    sum(NextN, NextSum),
    Sum = NextSum + N.
    goal 
    write("enter N: "),
    readInt(N),
    sum(N, Sum).

    Решение рекурсивное, поэтому сначала описываем условие выхода из рекурсии. Если N равно единице, то и сумма равна единице, т.е. рекурсивный вызов не требуется. В остальных случаях мы выполняем рекурсивную обработку для N-1 и прибавляем к результату значение N.

Для ответа в этой теме необходимо авторизоваться.