A165к

Задача. Даны действительные числа $a_{1}, a_{2},\ldots$. Известно, что $a_{1} > 0$ и что среди $a_{2}, a_{3}, \ldots$ есть хотя бы одно отрицательное число. Пусть $a_{1},\ldots,a_{n}$ – члены данной последовательности, предшествующие первому отрицательному члену ($n$ заранее неизвестно). Получить: $\left | a_{1}-a_{n} \right |$.

Тесты

Введённые данные. $\left | a_{1}-a_{n} \right |$ Комментарий.
1 2 6 4 -8 0 6 8 -7 3 Пройден.
0,65 3,2 4 0 -3 2 0,65 Пройден.
0 -5 8 9 0 Пройден.
0,8 3 6 9 7,2 0 4 -2 3,2 Пройден.
1 -3 6 0 Пройден.

Код

Так как в данной формуле присутствует первый член последовательности, который, согласно условию, всегда больше 0, он был вынесен из общего ряда, поэтому его ввод осуществляется вне цикла.

Затем нужно было найти n-ый член последовательности. Для этого было создано 2 переменные, в одной из которых хранится настоящее значение n-ого члена независимо от его знака. Если этот член — число не отрицательное, то вспомогательной переменной присваивается его значение и цикл повторяется вновь. Если же условие неравенства не выполняется, то цикл заканчивается, и у нас остаётся значение нашей вспомогательной переменной (не отрицательное).

В том случае, если первый член последовательности является в то же время и n-ым, $a_{n}$ и вспомогательной переменной присваивается значение $a_{1}$. И в этом случае модуль разницы будет равен 0.

После программа выводит модуль $\left | a_{1}-a_{n} \right |$.

Ссылка на условие задания: cpp.mazurok.com
Try Haxe