Eine Person muss N
Arbeitseinheiten absolvieren; Die Art der Arbeit ist die gleiche.
Um den Dreh raus zu bekommen, erledigt er am ersten Tag nur eine Arbeitseinheit .
Er möchte den Abschluss der Arbeiten feiern und beschließt, am letzten Tag eine Arbeitseinheit fertigzustellen .
Er ist nur zu vervollständigen erlaubt x
, x+1
oder x-1
an einem Tag Arbeitseinheiten , wobei x
die Einheiten der Arbeit am Vortag abgeschlossen sind.
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu erstellen, die die Mindestanzahl von Tagen berechnet, die er für die Fertigstellung N
von Arbeitseinheiten benötigt.
Beispiel Eingabe und Ausgabe:
input -> output (corresponding work_per_day table)
-1 -> 0 []
0 -> 0 []
2 -> 2 [1,1]
3 -> 3 [1,1,1]
5 -> 4 [1,1,2,1] or [1,2,1,1]
9 -> 5 [1,2,3,2,1]
13 -> 7 [1,2,2,2,3,2,1]
Die Eingabe kann durch STDIN
oder als Funktionsargument oder auf geeignete Weise erfolgen.
Die Ausgabe kann gedruckt oder als Ergebnis einer Funktion oder auf geeignete Weise erfolgen.
Das ist Code-Golf . Die kürzeste Lösung gewinnt.