Cheela (z książki Dragon Egg przez Roberta L. przodu) to istoty, które żyją na powierzchni gwiazdy neutronowej. Ich ciało jest płaskie i okrągłe z dwunastoma oczami na obwodzie, więc naturalnie używają systemu numeracji base-12.
Opieka nad pisklętami i wychowanie młodych wśród Cheeli to zadania realizowane przez Starych. Ponieważ młodą Cheelę trzeba nauczyć, jak się rozmnażać, Starzy mogą korzystać z tablicy mnożenia.
Twoim zadaniem jest stworzenie w bazie 12
tabliczki 12
mnożenia x 12
, jak poniżej. Wielkie litery A
i B
są używane dla cyfr odpowiadających odpowiednio liczbom dziesiętnym 10
i 11
.
1 2 3 4 5 6 7 8 9 A B 10
2 4 6 8 A 10 12 14 16 18 1A 20
3 6 9 10 13 16 19 20 23 26 29 30
4 8 10 14 18 20 24 28 30 34 38 40
5 A 13 18 21 26 2B 34 39 42 47 50
6 10 16 20 26 30 36 40 46 50 56 60
7 12 19 24 2B 36 41 48 53 5A 65 70
8 14 20 28 34 40 48 54 60 68 74 80
9 16 23 30 39 46 53 60 69 76 83 90
A 18 26 34 42 50 5A 68 76 84 92 A0
B 1A 29 38 47 56 65 74 83 92 A1 B0
10 20 30 40 50 60 70 80 90 A0 B0 100
Wyjście powinno zostać wydrukowane na ekranie. Format powinien wyglądać następująco:
- Liczby powinny być wyrównane do prawej w każdej kolumnie.
- Dopuszczalne są spacje wiodące przed pierwszą kolumną, spacje końcowe za ostatnią kolumną lub nowa linia końcowa po ostatnim wierszu.
Separacja między kolumnami może być jedną spacją (jak pokazano powyżej) lub więcej niż jedną spacją, ale liczba spacji powinna być spójna między kolumnami. Aby zmierzyć separację kolumn, należy wziąć pod uwagę, że wyświetlane liczby obejmują spacje wiodące, które mogły być konieczne do spełnienia wymagania 1 (więc każda liczba zajmuje trzy znaki, z których pierwszą mogą być spacje). Na przykład tabela z separacją dwóch spacji wygląda następująco:
1 2 3 4 5 6 7 8 9 A B 10 2 4 6 8 A 10 12 14 16 18 1A 20 3 6 9 10 13 16 19 20 23 26 29 30 4 8 10 14 18 20 24 28 30 34 38 40 5 A 13 18 21 26 2B 34 39 42 47 50 6 10 16 20 26 30 36 40 46 50 56 60 7 12 19 24 2B 36 41 48 53 5A 65 70 8 14 20 28 34 40 48 54 60 68 74 80 9 16 23 30 39 46 53 60 69 76 83 90 A 18 26 34 42 50 5A 68 76 84 92 A0 B 1A 29 38 47 56 65 74 83 92 A1 B0 10 20 30 40 50 60 70 80 90 A0 B0 100
Przechowywanie komputera na gwiazdy neutronowej jest naprawdę drogie, więc kod powinien zajmować jak najmniej bajtów.
Rozszerzone wyzwanie i bonus
Najlepiej byłoby, gdyby kod był ponownie wykorzystywany w innych częściach wszechświata, gdzie mogą być używane inne systemy numeracji. W tym celu wyzwanie jest opcjonalnie rozszerzane w następujący sposób: Twój kod przyjmuje liczbę N
jako dane wejściowe i generuje tablicę mnożenia N
xw N
bazie N
, w powyższym formacie.
Dane wejściowe mogą pochodzić z klawiatury lub jako argument funkcji. Program lub funkcja powinna działać dla 2
≤ N
≤ 36
, używając cyfr jako pierwsze N
znaki sekwencji 0
, 1
, ..., 9
, A
, B
, ..., Z
(wielkimi literami)
To rozszerzone wyzwanie jest opcjonalne. Jeśli podążysz tą drogą, zmniejsz o 20% liczbę bajtów (nie musisz zaokrąglać do liczby całkowitej).
Because they have twelve eyes, they naturally use a base-12 numbering system.
Cóż, oczywiście. Właśnie dlatego używamy plików binarnych ... ;-)