Вот первые 100 чисел простой последовательности:
0,1,0,2,1,4,3,7,6,11,10,16,15,22,21,29,28,37,36,46,45,56,55,67,66,79,78,92,91,106,105,121,120,137,136,154,153,172,171,191,190,211,210,232,231,254,253,277,276,301,300,326,325,352,351,379,378,407,406,436,435,466,465,497,496,529,528,562,561,596,595,631,630,667,666,704,703,742,741,781,780,821,820,862,861,904,903,947,946,991,990,1036,1035,1082,1081,1129,1128,1177,1176,1226
Как работает эта последовательность?
n: 0 1 2 3 4 5 6 7 8 9 10 11 12
0, 1-1=0, 2-1=1, 4-1=3, 7-1=6, 11-1=10, 16-1=15,
0+1=1, 0+2=2, 1+3=4, 3+4=7, 6+5=11, 10+6=16, 15+7=22
a(0) = 0
- Для каждого нечетного
n
(0-индексированного) этоa(n-1) + X
(гдеX=1
и увеличивается на 1 каждый раз, когда к нему обращаются) - Для каждого четного
n
(0-индексированного) этоa(n-1) - 1
Вызов:
Один из:
- Учитывая входное целое число
n
, выведитеn
число в последовательности. - Учитывая введенное целое число
n
, выведите первыеn
числа последовательности. - Вывести последовательность на неопределенный срок, не беря вход ( или принимая пустой неиспользуемый вход ).
Правила соревнований:
- Ввод
n
может быть 0- или 1-индексирован. - Если вы выводите (часть) последовательности, вы можете использовать список / массив, печатать в STDOUT с любым разделителем (пробел, запятая, перевод строки и т. Д.). Ваш звонок.
- Пожалуйста, укажите, какой из трех вариантов вы использовали в своем ответе.
- Вы должны будете поддержать как минимум первые 10000 номеров (10,000-й номер
12,497,501
).
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - К вашему ответу применяются стандартные правила , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода.
- Также, пожалуйста, добавьте объяснение, если это возможно.
Тестовые случаи:
Pastebin с первыми 10,001 числами в последовательности. Не стесняйтесь выбирать любой, который вы хотите.
Некоторые более высокие цифры:
n (0-indexed) Output:
68,690 589,772,340
100,000 1,249,975,000
162,207 3,288,888,857
453,271 25,681,824,931
888,888 98,765,012,346
1,000,000 124,999,750,000
ÎGDN+D<
генерирует последовательность, но захват n-го элемента кажется ... сложным в 3 байта.