Una persona deve completare le N
unità di lavoro; la natura del lavoro è la stessa.
Al fine di ottenere l'impiccagione del lavoro, completa una sola unità di lavoro nel primo giorno .
Desidera celebrare il completamento del lavoro, quindi decide di completare un'unità di lavoro nell'ultimo giorno .
Gli è permesso di completare solo x
, x+1
o x-1
unità di lavoro in un giorno , in cui x
le unità di lavoro sono state completate il giorno precedente.
Il tuo compito è creare un programma o una funzione che calcolerà il numero minimo di giorni che impiegherà per completare le N
unità di lavoro.
Esempio di input e output:
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]
L'input può essere preso attraverso STDIN
o come argomento di funzione o in qualsiasi modo appropriato.
L'output può essere stampato o come risultato di una funzione o in qualsiasi modo appropriato.
Questo è code-golf . Vince la soluzione più breve.