Введение
Учитывая набор процентных вариантов в опросе, подсчитайте минимальное число избирателей, которое должно быть в опросе, чтобы сгенерировать эту статистику.
Пример: какой ваш любимый питомец?
- Собака:
44.4%
- Кот:
44.4%
- Мышь:
11.1%
Выход: 9
(минимально возможное число избирателей)
Спекуляции
Вот требования к вашей программе / функции:
- В качестве входных данных вы получаете массив значений в процентах (для стандартного ввода, в качестве аргумента функции и т. Д.).
- Каждое процентное значение представляет собой число, округленное до одного десятичного знака (например,
44.4 44.4 11.1
). - Вычислите минимально возможное число избирателей в опросе, результаты которых позволят получить эти точные проценты при округлении до одного знака после запятой (по стандартному выводу или возвращаемому значению функции).
- Бонус : -15 символов, если вы можете решить «нетривиальным» способом (то есть, не включает в себя итерацию по каждому возможному числу избирателей, пока вы не найдете первый, который работает)
пример
>./pollreverse 44.4 44.4 11.1
9
>./pollreverse 26.7 53.3 20.0
15
>./pollreverse 48.4 13.7 21.6 6.5 9.8
153
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 99.6
2000
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 98.7
667
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 98.7
2000
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 97.8
401
счет
Это код-гольф, поэтому выигрывают самые короткие персонажи. Любые бонусы вычитаются из общего количества персонажей.
0.5%
суммы итога, и каждый раз, когда происходит округление, вы складываете сумму до 0.5%
суммы. Последние четыре контрольных примера были специально созданы для оптимального использования этого явления. В первом тестовом примере, который заканчивается 2000
, каждая из первых 9 записей представляет 1
голос (и все округляются в 0.5%
большую сторону), тогда как последняя представляет 1991
голоса (и округляется в меньшую сторону ~ 0.5%
). Если вы посчитаете эти проценты вручную и округлите до 1 десятичного знака, вы увидите, что все они верны.
26.7 53.3 20.0
(4 8 3 из 15),48.4 13.7 21.6 6.5 9.8
(74 21 33 10 15 из 153) и т. Д.