Desafio:
Envie os 'dígitos inteiros' de uma das seis tabelas aritméticas a seguir, com base na entrada:
- adição ( +);
- subtração ( -);
- multiplicação ( *);
- divisão ( /);
- exponenciação ( ^);
- operação do módulo ( %).
Regras:
- O que eu defino como 'inteiros dígitos': cada resultado do operando aritmética que é exatamente uma das seguintes opções:
0,1,2,3,4,5,6,7,8,9. Isso significa que você exclui todos os resultados iguais10ou superiores, todos os resultados-1iguais ou inferiores e todos os resultados não inteiros. Como calculamos os resultados aritméticos: Usando o dígito superior primeiro e depois o operando com o dígito esquerdo.Você tem permissão para fazer isso vice-versa (ou seja, emy/xvez dex/y), desde que seja consistente para todas as seis saídas! (Portanto, você não tem permissão para usary-xex/yna mesma resposta.) †- Não produziremos nada para dividir por 0 casos de teste (para as tabelas de operações de divisão e módulo)
- Não produziremos nada para o caso de ponta
0^0.
Resultado:
Portanto, imprima o seguinte (o formato da tabela é um pouco flexível (veja abaixo): as linhas são opcionais e adicionadas principalmente para facilitar a leitura dos casos de teste):
Adição:
+ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 1 2 3 4 5 6 7 8 9
1 | 1 2 3 4 5 6 7 8 9
2 | 2 3 4 5 6 7 8 9
3 | 3 4 5 6 7 8 9
4 | 4 5 6 7 8 9
5 | 5 6 7 8 9
6 | 6 7 8 9
7 | 7 8 9
8 | 8 9
9 | 9
Subtração:
- | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 1 2 3 4 5 6 7 8 9
1 | 0 1 2 3 4 5 6 7 8
2 | 0 1 2 3 4 5 6 7
3 | 0 1 2 3 4 5 6
4 | 0 1 2 3 4 5
5 | 0 1 2 3 4
6 | 0 1 2 3
7 | 0 1 2
8 | 0 1
9 | 0
Multiplicação:
* | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 0 0 0 0 0 0 0 0 0
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 2 4 6 8
3 | 0 3 6 9
4 | 0 4 8
5 | 0 5
6 | 0 6
7 | 0 7
8 | 0 8
9 | 0 9
Divisão:
/ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 |
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 1 2 3 4
3 | 0 1 2 3
4 | 0 1 2
5 | 0 1
6 | 0 1
7 | 0 1
8 | 0 1
9 | 0 1
Exponenciação:
^ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 1 1 1 1 1 1 1 1 1
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 1 4 9
3 | 0 1 8
4 | 0 1
5 | 0 1
6 | 0 1
7 | 0 1
8 | 0 1
9 | 0 1
Módulo:
% | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 |
1 | 0 0 0 0 0 0 0 0 0 0
2 | 0 1 0 1 0 1 0 1 0 1
3 | 0 1 2 0 1 2 0 1 2 0
4 | 0 1 2 3 0 1 2 3 0 1
5 | 0 1 2 3 4 0 1 2 3 4
6 | 0 1 2 3 4 5 0 1 2 3
7 | 0 1 2 3 4 5 6 0 1 2
8 | 0 1 2 3 4 5 6 7 0 1
9 | 0 1 2 3 4 5 6 7 8 0
Regras do desafio:
- Linhas à direita e espaços à direita são opcionais
- As linhas horizontais e verticais nos casos de teste são opcionais. Eu apenas os adicionei para melhor legibilidade. †
- Os espaços entre cada resultado NÃO são opcionais.
- O símbolo da aritmética pode ser diferente, desde que fique claro qual é.
×Ou seja, ou em·vez de*multiplicação;÷em vez de/divisão; etc. †
E desde que seja um único personagem, desculpe pelo Python**. - O formato de entrada é flexível. Você pode escolher um índice de 0-5 ou 1-6 para as seis tabelas correspondentes; você pode inserir o símbolo do operando; etc. (ao contrário do que é exibido no resultado, você pode inserir seqüências completas ou
**no caso do Python.)
Apenas certifique-se de indicar qual formato de entrada você usa na sua resposta!
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados, programas completos. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Exemplo † de saída válida sem linhas horizontais e verticais, ÷como o símbolo e utilizando y/xem vez de x/y:
÷ 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0
1 1
2 2 1
3 3 1
4 4 2 1
5 5 1
6 6 3 2 1
7 7 1
8 8 4 2 1
9 9 3 1
1, outras 0, outras algo a mais 0^0ou dividem / mod 0, mas você terá que contornar isso. Quanto à sua segunda pergunta: Sim, claro, contanto que os dígitos ainda estejam nas mesmas colunas / linhas, você poderá usar quantos espaços quiser.
y-x, y/x, y^xe y%xem vez de x-y, x/y, x^ye x%y? Hmm, acho que poderia ser bom. Vou editá-lo na resposta; contanto que você vai ser consistente para todos os seis deles (por isso não y-xe x/yna mesma resposta).