Решаем задачи Абрамян на Паскале. Series25

Series25. Дано целое число $$N$$ и набор из $$N$$ целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между первым и последним нулем (если первый и последний нули идут подряд, то вывести 0).

Решение:

Другие задачи из раздела Series можно посмотреть здесь.

Комментарии:

Комментарии 5

  • Было:

    Стало:

  • Кажется, у вас небольшая опечатка в решении. Я считаю что на 22 строке должно быть Sum:=Sum+SumTemp; а не Sum:=SumTemp;

    • Нет всё ок.
      В переменной Sum я сохраняю возможный парвильный ответ. А сумма щитаетс в SumTemp.
      Сейчас попытаюсь описать алгоритм.
      SumTemp — храниться сумма от первого нуля.
      делается это следующим образом
      при вводе каждого нового элемента мы к прибавляем его к SumTemp SumTemp:=SumTemp+Num;

      Если встречаем 0
      if Num=0 then
      определяем первый ли он?
      if not b then
      если он первый b будет равнятся false
      Тогда зануляем SumTemp и b назначаем true
      begin
      SumTemp:=0;
      b:=True;
      end;
      Ну и каждый раз когда мы видим ноль мы сохраняем текущую SumTemp в Sum. Вдруг это последний ноль.
      Sum:=SumTemp;

      Когда мы вышли из цикла, показываем Sum там будет сумма элементов от первого нуля до последнего.

      Тоесть если заменить 20 строчку на Sum:=Sum+SumTemp; то мы получим … как бы это словами 🙂 мы будем складывать суммы элементов от первого нуля до текущего.

  • почти так же сделал только ифы не вкладывал друг в друга

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *