Человек должен выполнить N
единицы работы; характер работы такой же.
Чтобы освоить работу, он выполняет только одну единицу работы в первый день .
Он хочет отпраздновать завершение работы, поэтому он решает завершить одну единицу работы в последний день .
Он разрешен только для завершения x
, x+1
или x-1
единицы работы в день , где x
есть единицы работы , выполненной в предыдущий день.
Ваша задача - создать программу или функцию, которая будет вычислять минимальное количество дней, которое он потратит на выполнение N
единиц работы.
Пример ввода и выхода:
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]
Входные данные могут быть получены через STDIN
или как аргумент функции, или любым подходящим способом.
Вывод может быть распечатан или как результат функции, или любым подходящим способом.
Это код-гольф . Самое короткое решение побеждает.