Wejście:
Dodatnia liczba całkowita n składająca się z cyfr z zakresu 0–9 .
Wyzwanie:
Jeśli d jest najwyższą cyfrą w liczbie całkowitej, załóż, że podstawą liczby jest d + 1 . Np. Jeśli liczba całkowita wynosi 1256 , to zakładasz, że jest ona w bazie-7 , jeśli jest to 10110, to założysz, że jest to podstawa-2 (binarna), a jeśli jest to 159, to jest dziesiętna.
Teraz wykonaj następujące czynności, aż albo: 1: osiągniesz liczbę całkowitą podstawową 10 , albo 2: osiągniesz jednocyfrową liczbę całkowitą.
- Przelicz liczbę całkowitą z base- (d + 1) na base-10
- Znajdź podstawę tej nowej liczby całkowitej (ponownie, base- (d + 1), gdzie d jest najwyższą cyfrą w nowym numerze)
- Przejdź do kroku 1 .
Przykłady:
Załóżmy, że dane wejściowe to n = 413574 . Najwyższa cyfra d = 7 , więc jest to podstawa-8 (ósemkowa). Konwertuj to na dziesiętne i otrzymaj 137084 . Najwyższa cyfra d = 8 , więc jest to podstawa-9 . Konwertuj to na dziesiętne i otrzymaj 83911 . Najwyższa cyfra to 9 , więc jest to liczba dziesiętna i przestajemy. Dane wyjściowe wynoszą 83911 .
Załóżmy, że dane wejściowe to n = 13552 . Najwyższą cyfrą jest d = 5 , więc jest to podstawa-6 . Przelicz to na dziesiętne i otrzymaj 2156 . Najwyższa cyfra d = 6 , więc jest to podstawa-7 . Przelicz to na dziesiętne i otrzymaj 776 . Najwyższą cyfrą jest d = 7 , więc jest to podstawa-8 . Przelicz to na dziesiętne i otrzymaj 510 . Najwyższą cyfrą jest d = 5, więc jest to podstawa-6 . Przelicz to na dziesiętne i uzyskaj 186 . Najwyższa cyfra to 8 , więc jest to podstawa-9 . Przelicz to na dziesiętne i otrzymaj 159. Najwyższa cyfra to 9 , więc jest to liczba dziesiętna i przestajemy. Dane wyjściowe wynoszą 159 .
Załóżmy, że dane wejściowe to n = 17 . To da nam 15 , następnie 11 , a następnie 3 , które wyprowadzimy, ponieważ jest to jedna cyfra.
Przypadki testowe:
5
5
17
3
999
999
87654321 (base-9 -> 42374116 in decimal -> base-7 -> 90419978 in decimal)
9041998
41253 (5505 -> 1265 -> 488 -> 404 -> 104 -> 29)
29
Uwagi:
- Standardowe zasady dotyczące We / Wy, luk itp. Dane wejściowe można traktować jako ciąg znaków
- Wyjaśnienia są zachęcane
- Możesz użyć wbudowanych poleceń konwersji bazy
- Rozwiązania, które nie używają wbudowanych funkcji konwersji języka (jeśli istnieją) są mile widziane, nawet jeśli kończą znacznie dłużej niż oczywiste podejście przy użyciu funkcji wbudowanych.
Najwyraźniej jest to OEIS A091047 .