Введение (может быть проигнорировано)
Размещать все положительные числа в обычном порядке (1, 2, 3, ...) немного скучно, не правда ли? Итак, вот серия проблем, связанных с перестановками (перестановками) всех положительных чисел. Это пятая задача в этой серии (ссылки на первый , второй , третий и четвертую задачу).
В этой задаче мы встретим массив Wythoff, который является переплетенной лавиной последовательностей Фибоначчи и последовательностей Битти!
Эти числа Фибоначчи , вероятно , для большинства из вас хорошо известной последовательности. Учитывая два начальных числа и , следующие задаются как: для .
Последовательность Битти , заданная параметром : для . Одним из свойств последовательности Битти является то, что для каждого параметра существует ровно один параметр , так что последовательности Битти для этих параметров не разделены и объединены, они охватывают все натуральные числа, исключая 0 (например: ).
Теперь пришла поразительная часть: вы можете создать массив, где каждая строка представляет собой последовательность Фибоначчи, а каждый столбец - последовательность Битти. Этот массив является массивом Wythoff . Самое приятное то, что каждое положительное число появляется в этом массиве ровно один раз! Массив выглядит так:
1 2 3 5 8 13 21 34 55 89 144 ...
4 7 11 18 29 47 76 123 199 322 521 ...
6 10 16 26 42 68 110 178 288 466 754 ...
9 15 24 39 63 102 165 267 432 699 1131 ...
12 20 32 52 84 136 220 356 576 932 1508 ...
14 23 37 60 97 157 254 411 665 1076 1741 ...
17 28 45 73 118 191 309 500 809 1309 2118 ...
19 31 50 81 131 212 343 555 898 1453 2351 ...
22 36 58 94 152 246 398 644 1042 1686 2728 ...
25 41 66 107 173 280 453 733 1186 1919 3105 ...
27 44 71 115 186 301 487 788 1275 2063 3338 ...
...
Элемент в строке и столбце определяется как:
где - золотое сечение: .
Если мы будем следовать антидиагоналам этого массива, мы получим A035513 , который является целевой последовательностью для этого вызова (обратите внимание, что эта последовательность добавлена в OEIS самим Нилом Слоаном !). Поскольку это задача «чистой последовательности», задача состоит в том, чтобы вывести для заданного качестве входных данных, где равно A035513 .
Существуют различные стратегии , которые вы можете следовать , чтобы добраться до , что делает эту проблему (на мой взгляд) очень интересно.
задача
Учитывая целочисленный ввод , выведите в целочисленном формате, где равноA035513 .
Примечание: здесь предполагается индексирование на основе 1; Вы можете использовать индексирование на основе 0, поэтому и т. д. Пожалуйста, укажите это в своем ответе, если вы решите использовать это.
Контрольные примеры
Input | Output
---------------
1 | 1
5 | 7
20 | 20
50 | 136
78 | 30
123 | 3194
1234 | 8212236486
3000 | 814
9999 | 108240
29890 | 637
Это может быть интересно знать , что самый большой ( п ) для 1 ≤ N ≤ 32767 является ( 32642 ) = 512653048485188394162163283930413917147479973138989971 = F ( 256 ) ⌊ 2 ф ⌋ + F ( 255 ) .
правила
- Вход и выход - целые числа
- Ваша программа должна как минимум поддерживать ввод в диапазоне от 1 до 32767). Обратите внимание, что идет до 30 цифр в этом диапазоне ...
- Неверный ввод (0, значения с плавающей запятой, строки, отрицательные значения и т. Д.) Может привести к непредсказуемому выводу, ошибкам или (не) определенному поведению.
- Применяются правила ввода / вывода по умолчанию .
- Лазейки по умолчанию запрещены.
- Это код-гольф , поэтому самые короткие ответы в байтах выигрывают
999
не так9999