Sind Sie es leid, sich immer wieder zu fragen, wie viele Pokémon Sie noch fangen müssen, um diese hochrangigen Entwicklungen zu erzielen? Wundere dich nicht mehr! Jetzt schreiben Sie ein komplettes Programm oder eine Funktion, um es für Sie zu berechnen!
Die Herausforderung:
Als Eingabe erhält Ihr Programm eine Liste der Kosten für Süßigkeiten, um ein Pokémon zur nächsten Stufe zu entwickeln. (Diese Liste kann durch ein beliebiges Trennzeichen Ihrer Wahl oder als Funktionsargumente getrennt werden.) Ihr Programm gibt dann die Anzahl der Pokémon zurück oder druckt sie aus, die gefangen werden müssen, einschließlich derjenigen, die entwickelt werden, um sich durch alle angegebenen Stufen zu entwickeln.
Wie berechnet man das? So sieht es aus:
1. Addiere alle Süßigkeiten-Kosten: 12 + 50 = 62
2. Subtrahiere 3 Süßigkeiten von der Gesamtsumme, wobei dies von dem einen Pokémon ist, das du für die Entwicklung behältst: 62 - 3 = 59
3. Teile diese Zahl durch 4 (3 für das Fangen, 1 für das Geben an die Professor), wobei Sie immer ceil()
das Ergebnis nehmen: ceil(59/4) = 15
4. Addieren Sie schließlich 1 zu dieser Summe, um die Gesamtzahl der Pokémon zu erhalten, die Sie fangen müssen, 16!
Beispiel Input -> Output
:
[4] -> 2
[50] -> 13
[12, 50] -> 16
[25, 100] -> 32
[19, 35, 5, 200] -> 65
Gewinnen:
Die App hat bereits den größten Teil des Speicherplatzes auf Ihrem Telefon belegt, daher muss Ihr Programm so kurz wie möglich sein. Das komplette Programm oder die Funktion mit der kleinsten Byteanzahl wird in zwei Wochen akzeptiert! (mit etwaigen Bindungen, die durch den frühesten eingereichten Eintrag geklärt werden!)
floor(Sum(L)/4)+1
? Die aktuelle Formel funktioniert nicht für durch 4 teilbare Summen. Zum Beispiel[400]
würde sie 100 zurückgeben, wenn sie in Wirklichkeit 101 sein muss, damit sich die zusätzliche entwickelt.Antworten:
05AB1E , 4 Bytes
Erläuterung
Probieren Sie es online aus
quelle
Gelee,
54 BytesProbieren Sie es online aus!
S
ähm, Ganzzahl dividieren:
durch4
und inkrementieren‘
.quelle
[4]
.Brain-Flak 112 Bytes
Probieren Sie es online aus!
Erläuterung
Es summiert den Stapel, subtrahiert eins, dividiert durch vier und addiert eins.
quelle
[4]
.C # REPL, 15 Bytes
Casts zu
Func<IEnumerable<int>, int>
.quelle
Eigentlich 4 Bytes
Probieren Sie es online aus!
Erläuterung:
quelle
Brachylog , 5 Bytes
Probieren Sie es online aus!
Erläuterung
Eine sehr originelle Antwort…
quelle
Python 2, 21 Bytes
Ideone es!
Formel:
((sum(a)-1)//4)+1
wo//
istfloor-div
.quelle
[4]
.BASH (sed + bc) 19
Eingabe ist eine
+
separate Liste auf stdinZB:
echo '(19+35+5+200)'| sed 's~)~+4)/4~'|bc
quelle
Haskell, 17 Bytes
quelle
Pyke, 4 Bytes
Probieren Sie es hier aus!
quelle
Pyth, 5 Bytes
Probieren Sie es hier aus!
Summeingabe mit
sQ
, dividiere durch 4 mit/4
und erhöhe schließlichh
.quelle
CJam, 7 Bytes
Probieren Sie es hier aus!
Definiert einen unbenannten Block, der die Eingabe auf dem Stapel erwartet und das Ergebnis dort belässt.
:+
summiert die Liste,4/
teilt das Ergebnis durch 4 und)
erhöht das.quelle
Netzhaut ,
1817 BytesDie Byteanzahl setzt die ISO 8859-1-Codierung voraus.
Der Eingang ist durch Zeilenvorschub getrennt.
Probieren Sie es online aus!
quelle
R, 22 Bytes
quelle
JavaScript, 29 Bytes
quelle
SILOS
100 99103 Zeichen + 22 für die ProbeneingabeCode mit Prüfkabelbaum.
Eingabe als eine Reihe von Set-Befehlen zum Ändern der Spots des Heaps ab Spot 512.
Probieren Sie es online aus!
quelle
Python 2, 40 Bytes
quelle
sum(s)
es sich um eine Ganzzahl handelt und/
in Python 2 eine Ganzzahldivision vorliegt, wenn beide Argumente Ganzzahlen sind.[4]
.