UniLecs #111. Финал

UniLecs #111. Финал

UniLecs

Задача: в ваш город на финал футбольного кубка приехало N болельщиков ФК Реал Мадрид и M болельщиков ФК Барселона. В вашем городе всего 1 отель, и номера в нем только по K мест каждый. Необходимо определить кол-во номеров, ктр нужны для размещения всех болельщиков, разумеется, крайне нежелательно селить в один номер болельщиков разных клубов.

Входные данные: N, M, K - натуральные числа от 1 до 10000

Вывод: кол-во требуемых номеров в отеле для размещения всех болельщиков

Условие: использовать переменные только целого типа, запрещается использовать функции округления из коробки языка

Пример: 

N = 7, M = 12, K = 3

Answer = 7

Вперед Реал :)

Идея: во многих языках программирования округление целых чисел идет в меньшую сторону, в нашем случае округлять надо в большую сторону. Если под рукой нет функций округления или вы хотите использовать только перeменные целого типа, то решить такую задачу можно используя след.формулу:

округление "ввех" = округление "вниз"

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

Кстати, обратное утверждение будет выражено след.формулой:

округление "вниз" = округление "вверх"

Более детально можете посмотреть тут:

Реализация:

C#

https://gist.github.com/unilecs/afdcf11394eb141582687483937989aa

Test:

https://dotnetfiddle.net/jvWtCU

Report Page