Dank an Geobits in TNB für die Idee
Ein Post ohne ausreichende Details hat kürzlich ein interessantes Spiel aufgestellt:
2 Kinder sitzen vor einer Reihe von Süßigkeiten. Jedes Bonbonstück ist mit 1 bis 1 nummeriert x
, x
wobei die Gesamtmenge der vorhandenen Bonbons angegeben ist. Es gibt genau 1 Vorkommen von jeder Zahl.
Das Ziel des Spiels ist es, dass die Kinder Süßigkeiten essen und die Werte der Süßigkeiten, die sie gegessen haben, multiplizieren, um zu einer endgültigen Punktzahl zu gelangen, wobei die höhere Punktzahl gewinnt.
In der ursprünglichen Veröffentlichung fehlten jedoch wichtige Informationen wie die Auswahl der Süßigkeiten, sodass die Kinder in unserer Geschichte entschieden haben, dass das ältere Kind zuerst gehen und bis zur Hälfte der Süßigkeiten essen kann. er kann seine Meinung nicht ändern.
Eines der Kinder in diesem Spiel mag keine Süßigkeiten, deshalb möchte er so wenig wie möglich essen, und er hat einmal seinem Vater beim Schreiben von Code zugesehen. Er kann die daraus gewonnenen Fähigkeiten nutzen, um herauszufinden, wie viel Süßigkeiten vorhanden sind Er muss essen, um den Sieg zu sichern, während er immer noch so wenig wie möglich isst.
Die Herausforderung
Angesichts der Gesamtzahl der Süßigkeiten x
sollte Ihr Programm oder Ihre Funktion die kleinste Menge Süßigkeiten ausgeben, die er essen muss, um den Sieg zu sichern.n
, auch wenn sein Gegner alle verbleibenden Süßigkeiten isst.
Natürlich machen größere Zahlen größere Zahlen. Egal, wie viel du ihm gibst, er wird das essen n
größten Zahlen.
Die Regeln
x
wird immer eine positive ganze Zahl in dem Bereich sein,0 < x! <= l
in deml
die Obergrenze der Funktionen zur Verarbeitung von Zahlen in Ihrer Sprache liegt- Es ist garantiert, dass das Kind immer die
n
größten Mengen isst , zum Beispiel fürx = 5
undn = 2
, er wird essen4
und5
Testfälle
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]))
Wertung
Leider hat unser tapferer Kandidat nichts, womit er seinen Code schreiben kann, also muss er die Bonbonstücke in die Zeichen des Codes einordnen. Daher muss Ihr Code so klein wie möglich sein, der kleinste Code in Bytes gewinnt!
x = 0
auch gehandhabt werden 0! = 1
? ( x