Rozważ następującą sekwencję:
0 1 3 2 5 4 8 6 7 12 9 10 11 17 13 14 15 16 23 ...
Wygląda całkiem bez wzoru, prawda? Oto jak to działa. Zaczynając od 0
, podskakuj n
liczby całkowite, n
zaczynając od 1
. To kolejny numer w sekwencji. Następnie dodaj wszystkie „pomijane” liczby, które nie były jeszcze widoczne w kolejności rosnącej. Następnie zwiększaj n
i przeskakuj od ostatniej dołączonej liczby. Powtórz ten wzór.
Na przykład, kiedy docieramy 11
, jesteśmy na n=5
. Zwiększamy n
się n=6
, wskoczyć do 17
, następnie dołączyć 13 14 15 16
od tych, które nie zostały jeszcze widoczne. Nasz następny skok to n=7
kolejny element w sekwencji 23
.
Wyzwanie
Biorąc pod uwagę dane wejściowe x
, wypisz x
th termin tej sekwencji, pierwsze x
warunki sekwencji lub zbuduj nieskończoną listę terminów sekwencji. Możesz wybrać indeksowanie 0 lub 1.
I / O i reguły
- Dane wejściowe i wyjściowe można podać dowolną dogodną metodą .
- Można założyć, że dane wejściowe i wyjściowe pasują do rodzimego typu liczb w twoim języku.
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).