Podziękowania dla Geobitów w TNB za pomysł
Postu bez dostatecznej szczegółowości niedawno zakładał ciekawą grę:
2 dzieci siedzą przed tablicą cukierków. Każdy kawałek cukierka jest ponumerowany od 1 do x, przy xczym całkowita ilość cukierków jest obecna. Występuje dokładnie 1 wystąpienie każdej liczby.
Celem gry jest zjedzenie przez dzieci słodyczy i pomnożenie wartości zjedzonych przez nich cukierków, aby osiągnąć końcowy wynik, przy czym wygrywa wyższy wynik.
Jednak w oryginalnym poście brakowało kluczowych informacji, takich jak sposób wybierania cukierków, więc dzieci w naszej historii zdecydowały, że starsze dziecko pójdzie pierwsze i będzie mogło zjeść do połowy słodyczy, jednak gdy ogłosi koniec swojej tury, nie może zmienić zdania.
Jedno z dzieciaków w tej grze nie lubi słodyczy, więc chce jeść tak mało, jak to możliwe, i raz widział, jak tata pisze kod, i uważa, że może wykorzystać nabyte umiejętności, aby obliczyć, ile słodyczy musi jeść, aby zapewnić sobie zwycięstwo, a jednocześnie jeść jak najmniej.
Wyzwanie
Biorąc pod uwagę całkowitą liczbę cukierków x, twój program lub funkcja powinna wydać najmniejszą ilość cukierków, jaką musi zjeść, aby zapewnić zwycięstwo n, nawet jeśli jego przeciwnik zje wszystkie pozostałe cukierki.
Naturalnie większe liczby tworzą większe liczby, więc bez względu na to, ile mu dasz, zje nnajwięcej.
Zasady
xzawsze będzie dodatnią liczbą całkowitą w zakresie, w0 < x! <= lktórymlznajduje się górna granica możliwości obsługi liczb w Twoim języku- Gwarantujemy, że dziecko będzie zawsze jeść
nnajwięcej, na przykład dlax = 5in = 2będzie jeść4i5
Przypadki testowe
x = 1
n = 1
(1 > 0)
x = 2
n = 1
(2 > 1)
x = 4
n = 2
(3 * 4 == 12 > 1 * 2 == 2)
x = 5
n = 2
(4 * 5 == 20 > 1 * 2 * 3 == 6)
x = 100
n = 42
(product([59..100]) > product([1..58]))
x = 500
n = 220
(product([281..500]) > product([1..280]))
Punktacja
Niestety, nasz dzielny zawodnik nie ma nic do pisania kodu, więc musi ułożyć kawałki cukierków w znaki kodu, w wyniku czego twój kod musi być tak mały, jak to możliwe, najmniejszy kod w bajtach wygrywa!
x = 0również traktować, ponieważ 0! = 1? (Być może xpowinien być również określony jako dodatnia liczba całkowita?)