Une personne doit terminer des N
unités de travail; la nature du travail est la même.
Afin de se familiariser avec le travail, il ne termine qu'une seule unité de travail le premier jour .
Il souhaite célébrer la fin des travaux, il décide donc de terminer une unité de travail le dernier jour .
Il n'est autorisé à terminer x
, x+1
ou x-1
unités de travail dans une journée , où x
sont les unités de travail achevées la veille.
Votre tâche consiste à créer un programme ou une fonction qui calculera le nombre minimum de jours qu'il faudra pour terminer les N
unités de travail.
Exemple d'entrée et de sortie:
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'entrée peut être effectuée via STDIN
ou comme argument de fonction, ou de toute manière appropriée.
La sortie peut être imprimée ou à la suite d'une fonction, ou de toute manière appropriée.
C'est du code-golf . La solution la plus courte l'emporte.