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

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

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

  • Автор
    Сообщения
  • #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.

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