Masz dość nieustannego zastanawiania się, ile jeszcze Pokémonów musisz złapać, aby uzyskać ewolucje na wysokim poziomie? Nic dziwnego, że już nie! Teraz napiszesz kompletny program lub funkcję, aby go obliczyć!
Wyzwanie:
Jako dane wejściowe, twój program otrzyma listę kosztów w cukierkach, aby rozwinąć Pokémona do następnego poziomu. (Ta lista może być oddzielona dowolnym wybranym ogranicznikiem lub jako argumenty funkcji). Twój program zwróci lub wydrukuje liczbę Pokémonów, które należy złapać, w tym tę, która będzie ewoluować, aby ewoluować przez wszystkie podane poziomy.
Jak to obliczyć? W ten sposób:
1. Zsumuj wszystkie koszty cukierków: 12 + 50 = 62
2. Odejmij 3 cukierki od sumy, to jest od jednego Pokémona, którego ewoluujesz: 62 - 3 = 59
3. Podziel tę liczbę przez 4 (3 dla złapania, 1 dla przekazania Profesor), zawsze biorąc ceil()
wynik: ceil(59/4) = 15
4. Na koniec dodaj 1 do tej sumy, aby uzyskać całkowitą liczbę Pokémonów, które musisz złapać, 16!
Przykład Input -> Output
:
[4] -> 2
[50] -> 13
[12, 50] -> 16
[25, 100] -> 32
[19, 35, 5, 200] -> 65
Zwycięski:
Aplikacja zajęła już większość miejsca w telefonie, więc Twój program musi być jak najkrótszy. Kompletny program lub funkcja o najmniejszej liczbie bajtów zostanie zaakceptowana za dwa tygodnie! (wszelkie powiązania są rozstrzygane przez najwcześniej przesłane zgłoszenie!)
floor(Sum(L)/4)+1
? Obecna formuła nie działa dla sum podzielnych przez 4. Na przykład[400]
zwróci 100, podczas gdy w rzeczywistości musi być 101, aby dodatkowa ewoluowała.Odpowiedzi:
05AB1E , 4 bajty
Wyjaśnienie
Wypróbuj online
źródło
Galaretka,
54 bajtówWypróbuj online!
S
um, liczba całkowita dzielona:
przez4
i przyrost‘
.źródło
[4]
.Brain-Flak 112 bajtów
Wypróbuj online!
Wyjaśnienie
Sumuje stos, odejmuje jeden, dzieli przez cztery i dodaje jeden.
źródło
[4]
.C # REPL, 15 bajtów
Przesyłanie do
Func<IEnumerable<int>, int>
.źródło
Właściwie 4 bajty
Wypróbuj online!
Wyjaśnienie:
źródło
Brachylog , 5 bajtów
Wypróbuj online!
Wyjaśnienie
Bardzo oryginalna odpowiedź…
źródło
Python 2, 21 bajtów
Ideone to!
Formuła:
((sum(a)-1)//4)+1
gdzie//
jestfloor-div
.źródło
[4]
.BASH (sed + bc) 19
Dane wejściowe to
+
osobna lista dla standardowego wejścianp .:
echo '(19+35+5+200)'| sed 's~)~+4)/4~'|bc
źródło
Haskell, 17 bajtów
źródło
Pyke, 4 bajty
Wypróbuj tutaj!
źródło
Pyth, 5 bajtów
Wypróbuj tutaj!
Suma danych wejściowych za pomocą
sQ
, podziel przez 4 za pomocą/4
i na końcu zwiększh
.źródło
CJam, 7 bajtów
Wypróbuj tutaj!
Definiuje nienazwany blok, który oczekuje danych wejściowych na stosie i pozostawia tam wynik.
:+
sumuje listę,4/
dzieli wynik przez 4 i)
zwiększa to.źródło
Siatkówka ,
1817 bajtówLiczba bajtów zakłada kodowanie ISO 8859-1.
Wejście jest oddzielone od linii.
Wypróbuj online!
źródło
R, 22 bajty
źródło
JavaScript, 29 bajtów
źródło
SILOS
100 99103 znaków + 22 do wprowadzania próbkiKod z wiązką testową.
dane wejściowe jako seria zestawów poleceń do modyfikowania miejsc na stosie, zaczynając od miejsca 512.
Wypróbuj online!
źródło
Python 2, 40 bajtów
źródło
sum(s)
jest liczbą całkowitą,/
aw Pythonie 2 będzie dzieleniem całkowitym, gdy oba argumenty są liczbami całkowitymi.[4]
.