UniLecs #111. Финал
UniLecsЗадача: в ваш город на финал футбольного кубка приехало N болельщиков ФК Реал Мадрид и M болельщиков ФК Барселона. В вашем городе всего 1 отель, и номера в нем только по K мест каждый. Необходимо определить кол-во номеров, ктр нужны для размещения всех болельщиков, разумеется, крайне нежелательно селить в один номер болельщиков разных клубов.
Входные данные: N, M, K - натуральные числа от 1 до 10000
Вывод: кол-во требуемых номеров в отеле для размещения всех болельщиков
Условие: использовать переменные только целого типа, запрещается использовать функции округления из коробки языка
Пример:
N = 7, M = 12, K = 3
Answer = 7
Идея: во многих языках программирования округление целых чисел идет в меньшую сторону, в нашем случае округлять надо в большую сторону. Если под рукой нет функций округления или вы хотите использовать только перeменные целого типа, то решить такую задачу можно используя след.формулу:
Таким образом, мы переходим от округления в большую сторону к окргулению в меньшую сторону. Но для этих формул нужно учитывать возможность переполнения, поэтому нужно вводить доп.проверки для больших чисел.
Кстати, обратное утверждение будет выражено след.формулой:
Более детально можете посмотреть тут:
Реализация:
https://gist.github.com/unilecs/afdcf11394eb141582687483937989aa
Test: