Ustawić:
Sieć społecznościowa podaje liczbę głosów, które ma post na dwa sposoby: liczbę głosów pozytywnych netto (liczba głosów pozytywnych - liczba głosów pozytywnych) oraz % głosów, które były głosami pozytywnymi , w zaokrągleniu do najbliższej liczby całkowitej (0,5 zaokrągla w górę). Liczba upvotów netto jest liczbą całkowitą (niekoniecznie dodatnią), a drugą gwarancją jest liczba całkowita od 0 do +100 włącznie. Liczba głosów pozytywnych i liczba głosów negatywnych są zarówno zerowymi, jak i dodatnimi 32-bitowymi liczbami całkowitymi (możesz określić podpisany lub niepodpisany). Załóżmy, że jeśli głosów jest zero, procentowy udział w głosowaniu jest zgłaszany jako zero.
Wyzwanie:
Biorąc pod uwagę te dwie liczby całkowite (wzrost liczby głosów netto i procent wzrostu liczby głosów), jaki jest najkrótszy program, jaki można napisać, który określa najniższą liczbę całkowitych głosów pozytywnych otrzymanego postu, przy spełnieniu wszystkich powyższych ograniczeń?
Ograniczenia wejściowe są gwarantowane. Jeśli dane wejściowe nie spełniają powyższych ograniczeń, zachowanie programu zależy od Ciebie. Dodatkowe nagrody, jeśli nie wejdzie w nieskończoną pętlę lub w inny sposób ulegnie awarii. Jeśli chcesz uzyskać więcej wskazówek, rozważ zwrócenie liczby ujemnej.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsze prawidłowe rozwiązanie (mierzone w bajtach).
- Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. Dodatkowe wyróżnienia za język WWW po stronie klienta, taki jak Javascript.
- Jeśli masz ciekawe rozwiązania w wielu językach, opublikuj je osobno .
- Do odpowiedzi odnoszą się standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwrotu lub pełnymi programami. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- Dodaj także wyjaśnienie dotyczące działania kodu.
- Pamiętaj, że jeśli wykonujesz operację dzielenia liczb całkowitych, która skraca (np. 20/3 = 6) zamiast zaokrąglać , może to nie być w pełni poprawne.
- Dodatkowe przypadki testowe, które eksplorują przypadki brzegowe w powyższych ograniczeniach, są mile widziane.
- Podczas gdy oczekiwany typ zwrotu jest liczbowy, zamiast wartości 0 można użyć wartości logicznej „fałsz” .
Przykładowe przypadki testowe:
Pierwsza kolumna to tylko numer referencyjny dołączony w celu ułatwienia dyskusji.
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
. Czy możesz potwierdzić, że oczekiwana odpowiedź to 1000
?