Мы все знакомы со знаменитой последовательностью Фибоначчи , которая начинается с 0
и 1
, и каждый элемент является суммой двух предыдущих. Вот первые несколько терминов (OEIS A000045 ):
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584
Если задано положительное целое число , верните ближайшее число последовательности Фибоначчи по следующим правилам:
Ближе число Фибоначчи определяется как число Фибоначчи с наименьшим абсолютной разности с заданным числом. Например,
34
является ближайшим числом Фибоначчи30
, потому что|34 - 30| = 4
, которое меньше второго ближайшего21
, для которого|21 - 30| = 9
.Если данное целое число принадлежит последовательности Фибоначчи, то ближайшее число Фибоначчи является само собой. Например, самое близкое число Фибоначчи к
13
точно13
.В случае ничьей, вы можете выбрать либо одно из чисел Фибоначчи, которые оба ближе всего к входу, либо просто вывести их оба. Например, если на входе
17
, все следующие соотношения:21
,13
или21, 13
. Если вы вернете их оба, укажите формат.
Применяются стандартные лазейки . Вы можете получить ввод и обеспечить вывод любым стандартным методом . Ваша программа / функция должна обрабатывать только значения до 10 8 .
Тестовые случаи
Вход -> Выход 1 -> 1 3 -> 3 4 -> 3 или 5 или 3, 5 6 -> 5 7 -> 8 11 -> 13 17 -> 13 или 21 или 13, 21 63 -> 55 101 -> 89 377 -> 377 467 -> 377 500 -> 610 1399 -> 1597
счет
Это код-гольф , поэтому выигрывает самый короткий код в байтах на каждом языке !
n
означает n ≥ 1
.