Вступ
Враховуючи набір відсотків вибору у опитуванні, обчисліть мінімальну кількість виборців, яка повинна бути в опитуванні, щоб створити цю статистику.
Приклад: Який ваш улюблений улюбленець?
- Пес:
44.4%
- Кіт:
44.4%
- Миша:
11.1%
Результат: 9
(мінімально можлива кількість виборців)
Технічні характеристики
Ось вимоги до вашої програми / функції:
- Вам надається масив відсоткових значень як вхідних даних (на stdin, як аргумент функції тощо)
- Кожне процентне значення - це число, округлене до одного десяткового знака (наприклад,
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) тощо