Рассмотрим следующую последовательность:
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-индексацию.
Ввод / вывод и правила
- Вход и выход могут быть заданы любым удобным способом .
- Можно предположить, что ввод и вывод соответствуют типу номера вашего языка.
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).