e-olymp 75. Пираты и монеты

Задача

[latex]n[/latex] пиратам удалось справедливо разделить клад из [latex]m[/latex] золотых монет — каждый получил свою часть согласно своему пиратскому рангу и стажу. Самый молодой пират взял [latex]a[/latex] монет, а каждый следующий пират брал на одну монету больше, чем предыдущий его коллега. Последним был капитан, которому досталось вдвое больше от запланированного, очевидно, что после него монет больше не осталось.

Сколько было пиратов вместе с капитаном, если известны [latex]a[/latex] и [latex]m[/latex]. Так как капитан без команды просто пират, то [latex]n > 1[/latex].

Входные данные

Два натуральных числа [latex]a[/latex] и [latex]m[/latex] ([latex]1 ≤ a ≤ 100, m < 15150[/latex]). Входные данные корректны.

Выходные данные

Количество пиратов [latex]n[/latex].

Тесты

 #  ВХОДНЫЕ ДАННЫЕ  ВЫХОДНЫЕ ДАННЫЕ
 1  5 25  3
 2  3 24  4
 3  4 38  5
 4  5 55  6
 5  6 75  7

Код программы

Решение задачи

Это задача решается с помощью алгебраической прогрессии. Мы создаем цикл , который будет работать пока не поступит команда break. И в этот цикл помещаем условные операторы. Первый определяет когда очередь дошла до капитана , второй считает количество пиратов в команде.

Ссылки

 

6 thoughts on “e-olymp 75. Пираты и монеты

    • Или можно бы отрицание условия из самого «if» внести в условие «while», а в конце просто добавить один «n++». Тогда вообще пропадает необходимость в ветвлении

  1. Даниил, если задача находится в разделе «Линейные вычисления», её нужно попытаться решить без использования условных операторов либо циклов. Ты ведь сам сначала вспомнил про арифметическую прогрессию, а потом зачем-то делаешь цикл)
    И ещё, нужно добавить метки к отчёту и убрать кириллицу из постоянной ссылки.

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