Cheela (з книги Яйце дракона Роберт Л. вперед) істотиякі живуть на поверхні нейтронної зірки. Їх тіло плоске та кругле з дванадцятьма очима по периметру, тому вони, природно, використовують базову систему нумерації 12.
Серед чеелів догляд за люками та виховання молодих людей - це завдання, що виконуються Старими. Оскільки молодого Чеела потрібно навчити розмножуватися, Старі можуть використовувати таблицю множення.
Ваше завдання - створити таблицю множення 12
x 12
у базі 12
, як описано нижче. Заголовні букви A
і B
використовуються для цифр , відповідних десятковим 10
і 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
Вихід повинен бути надрукований на екрані. Формат повинен бути наступним:
- Числа повинні бути вирівняні праворуч у межах кожного стовпця.
- Доступні провідні пробіли перед першим стовпцем, пробіли після останнього стовпця або останній рядок після останнього рядка.
Поділ між стовпцями може містити один пробіл (як показано вище) або більше одного простору, але кількість пробілів має відповідати між стовпцями. Для вимірювання поділу стовпців врахуйте, що відображені числа включають будь-які провідні пробіли, які, можливо, були необхідні для виконання вимоги 1 (тому кожне число займає три символи, перший з яких може бути пробілами). Наприклад, таблиця з роздільним простором буде такою:
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
Зберігання комп'ютера на нейтронній зірці дійсно дороге, тому ваш код повинен використовувати якомога менше байтів.
Розширений виклик та бонус
В ідеалі ваш код слід повторно використовувати в інших частинах Всесвіту, де можуть застосовуватися інші системи нумерації. З цією метою виклик необов'язково розширюється наступним чином: Ваш код приймає число N
в якості вхідного даних і створює таблицю множення N
x N
у базіN
з вищевказаним форматом.
Введення даних може бути з клавіатури або як аргумент функції. Програма або функція повинна працювати & 2
le ; & N
le ; 36
, використовуючи в якості цифр перших N
символів послідовності 0
, 1
, ..., 9
, A
, B
, ...,Z
(великі літери)
Це розширене завдання не є обов'язковим. Якщо ви слідуєте за цим маршрутом, зніміть 20% від кількості байтів (не потрібно округляти до цілого числа).
Because they have twelve eyes, they naturally use a base-12 numbering system.
Ну, природно. Ось чому ми використовуємо бінарне, зрештою ... ;-)