Os Cheela (do livro Ovo do Dragão, de Robert L. Forward) são criaturas que vivem na superfície de uma estrela de nêutrons. Seu corpo é plano e circular, com doze olhos no perímetro, então eles naturalmente usam um sistema de numeração de base 12.
Entre os Cheela, o cuidado com os filhotes e a educação dos jovens são tarefas realizadas pelos Antigos. Como o jovem Cheela precisa ser ensinado a multiplicar, os Antigos poderiam usar uma tabuada de multiplicação.
Sua tarefa é produzir uma tabela de multiplicação 12
x 12
na base 12
, como a seguir. Letras maiúsculas A
e B
são usadas para dígitos correspondentes a decimal 10
e 11
respectivamente.
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
A saída deve ser impressa na tela. O formato deve ser o seguinte:
- Os números devem estar alinhados à direita em cada coluna.
- São permitidos espaços à esquerda antes da primeira coluna, espaços à direita após a última coluna ou uma nova linha após a última linha.
A separação entre colunas pode ser um espaço (como mostrado acima) ou mais de um espaço, mas o número de espaços deve ser consistente entre as colunas. Para medir a separação de colunas, considere que os números exibidos incluem quaisquer espaços iniciais que possam ter sido necessários para atender ao requisito 1 (portanto, cada número ocupa três caracteres, o primeiro dos quais pode ser espaços). Por exemplo, a tabela com separação de dois espaços seria a seguinte:
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
O armazenamento do computador em uma estrela de nêutrons é muito caro, portanto, seu código deve usar o mínimo de bytes possível.
Desafio e bônus estendidos
Idealmente, seu código deve ser reutilizado em outras partes do universo, onde outros sistemas de numeração podem estar em uso. Para esse fim, o desafio é opcionalmente estendido da seguinte forma: Seu código aceita um número N
como entrada e gera uma tabela de multiplicação N
x N
na base N
, com o formato acima.
A entrada pode ser do teclado ou como argumento de função. O programa ou função deve funcionar para 2
≤ N
≤ 36
, usando como dígitos nos primeiros N
caracteres da seqüência 0
, 1
, ..., 9
, A
, B
, ..., Z
(maiúsculas letras)
Esse desafio estendido é opcional. Se você seguir esta rota, obtenha 20% de desconto na contagem de bytes (não é necessário arredondar para um número inteiro).
Because they have twelve eyes, they naturally use a base-12 numbering system.
Bem, naturalmente. É por isso que usar binário, afinal ... ;-)