Настройка:
Социальная сеть сообщает о количестве голосов в сообщении двумя способами: количество чистых голосов (общее количество голосов - общее количество голосов) и процент голосов, которые были проголосовавшими , округляются до ближайшего целого числа (округляется в сторону увеличения до 0,5). Число чистых голосов является целым числом (не обязательно положительным), а второе гарантировано будет целым числом от 0 до +100 включительно. Количество положительных голосов и количество отрицательных голосов являются либо нулевыми, либо положительными 32-разрядными целыми числами (вы можете указать знак со знаком или без знака). Предположим, что при нулевом общем количестве голосов процент проголосовавших считается равным нулю.
Соревнование:
С учетом этих двух целых чисел (нетто-голосов и% голосов), какую самую короткую программу вы можете написать, которая определяет наименьшее количество общих голосов, полученных постом, с соблюдением всех вышеуказанных ограничений?
Входные ограничения гарантированы. Если ввод не удовлетворяет вышеуказанным ограничениям, поведение программы зависит от вас. Бонус слава, если он не входит в бесконечный цикл или иным образом вылетает. Подумайте о возврате отрицательного числа, если вам нужны дополнительные указания
Основные правила:
- Это код-гольф , поэтому выигрывает самое короткое действительное решение (измеряется в байтах).
- Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. Бонусы за клиентский веб-язык, такой как Javascript.
- Если у вас есть интересные решения на нескольких языках, опубликуйте их отдельно .
- К вашему ответу применяются стандартные правила , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата или полные программы. Ваш звонок.
- Лазейки по умолчанию запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода.
- Также, пожалуйста, добавьте объяснение того, как работает код.
- Имейте в виду, что если вы выполняете целочисленную операцию деления, которая усекает (например, 20/3 = 6), а не округляет , это может быть не совсем правильно.
- Дополнительные тестовые случаи, которые исследуют крайние случаи в вышеупомянутых ограничениях, приветствуются.
- Хотя ожидаемый тип возвращаемого значения является числовым, вместо 0 можно использовать логическое «false» .
Пример тестовых случаев:
Первый столбец - это просто ссылочный номер, включенный для облегчения обсуждения.
ref net %up answer
1 0 0 => 0
2 -5 0 => 0
3 -4 17 => 1
4 -3 29 => 2
5 -2 38 => 3
6 -1 44 => 4
7 0 50 => 1
8 5 100 => 5
9 4 83 => 5
10 3 71 => 5
11 2 63 => 5
12 1 56 => 5
13 1234 100 => 1234
14 800 90 => 894 (tip: don't refer to this as the "last test case;" others may be added.)
1000, 100
. Можете ли вы подтвердить, что ожидаемый ответ 1000
?