Рассмотрим следующую последовательность:
0 1 3 2 5 4 8 6 7 12 9 10 11 17 13 14 15 16 23 ...
Выглядит довольно шаблонно, верно? Вот как это работает. Начиная с 0
, прыгайте вверх n
целые числа, n
начиная с 1
. Это следующий номер в последовательности. Затем добавьте все числа, «пропущенные», и которые еще не были показаны в порядке возрастания. Затем увеличивайте n
и переходите от последнего добавленного числа. Повторите этот шаблон.
Так, например, когда мы достигаем 11
, мы находимся n=5
. Мы увеличиваем, n
чтобы быть n=6
, подпрыгнуть 17
, затем добавить, 13 14 15 16
так как они еще не были замечены. Наш следующий переход - n=7
следующий элемент в последовательности 23
.
Соревнование
Задавая входные данные x
, x
выводим термы этой последовательности, первые x
термы последовательности или строим бесконечный список терминов последовательности. Вы можете выбрать 0- или 1-индексацию.
Ввод / вывод и правила
- Вход и выход могут быть заданы любым удобным способом .
- Можно предположить, что ввод и вывод соответствуют типу номера вашего языка.
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).