tło
Kiedy byłem w szkole podstawowej, graliśmy w grę z matematyki, która wygląda następująco.
Wszystkie dzieci siedzą w dużym kręgu i liczą na zmianę, zaczynając od 1 .
Podczas liczenia należy jednak pominąć następujące liczby:
- Liczby będące wielokrotnościami 3 .
- Liczby, które mają 3 w postaci dziesiętnej.
Pierwsze 15 liczb, które dzieci powinny powiedzieć, to
1 2 4 5 7 8 10 11 14 16 17 19 20 22 25
Ilekroć ktoś pomyli liczbę - mówi liczbę, która nie jest w sekwencji lub pomija liczbę, która jest - jest usuwany z kręgu. Trwa to dopóki nie zostanie tylko jedno dziecko.
Zadanie
Jesteś zły w tej grze, więc decydujesz się oszukiwać. Napisz program lub funkcję, która na podstawie numeru sekwencji oblicza następny numer sekwencji.
Nie musisz obsługiwać liczb, które nie mogą być reprezentowane przy użyciu rodzimego typu liczbowego twojego języka, pod warunkiem, że twój program działa poprawnie do wejścia 251 i że twój algorytm działa dla dowolnie dużych danych wejściowych.
Wejście i wyjście może wykorzystywać dowolną dogodną bazę.
Ponieważ musisz ukryć swój kod, musi on być jak najkrótszy. W rzeczywistości jest to kod-golf , więc wygrywa najkrótszy kod w bajtach.
Przypadki testowe
1 -> 2
2 -> 4
11 -> 14
22 -> 25
29 -> 40
251 -> 254
7
go pomijano, kiedy go grałem, ale zamiast tego przechodziłbyś do następnej liczby, zamiast tego mówiłeś coś innego.