Inspirado por essa pergunta, que foi inspirada por essa , escreva um programa que use dois números inteiros e os adicione de uma maneira única, executando uma operação OR nos segmentos usados para exibi-los em um display de 7 segmentos. Para referência, os dígitos são representados da seguinte maneira:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Observe que o 1 usa os dois segmentos à direita, não à esquerda. Existem dois caracteres especiais que podem ser produzidos dessa maneira e não são números. Veja a tabela de adição abaixo:
| 0 1 2 3 4 5 6 7 8 9
--+--------------------
0 | 0 0 8 8 8 8 8 0 8 8
1 | 0 1 a 3 4 9 8 7 8 9
2 | 8 a 2 a 8 8 8 a 8 8
3 | 8 3 a 3 9 9 8 3 8 9
4 | 8 4 8 9 4 9 8 Q 8 9
5 | 8 9 8 9 9 5 6 9 8 9
6 | 8 8 8 8 8 6 6 8 8 8
7 | 0 7 a 3 Q 9 8 7 8 9
8 | 8 8 8 8 8 8 8 8 8 8
9 | 8 9 8 9 9 9 8 9 8 9
Observações úteis:
- Qualquer dígito mais ele mesmo se iguala
- 8 mais qualquer dígito é igual a 8
- 2 mais 1, 3 ou 7 é igual à letra 'a' (deve estar em minúscula)
- 4 mais 7 é igual a 'q' ou 'Q', sua escolha
- Os números devem estar alinhados à direita, para que os dígitos sejam adicionados da direita para a esquerda. Se um número tiver mais dígitos que o outro, os dígitos extras no início deverão permanecer inalterados. Não há 0's iniciais, a menos que o número seja exatamente 0.
- Todos os números serão 0 ou mais. Você não precisa manipular um sinal de '-'. (Principalmente porque não há um ajuste adequado para a soma de um '-' e um '1' ou '7'.)
Seu programa deve aceitar 2 números inteiros em qualquer formato que você escolher e gerar uma string contendo sua "soma" quando calculada dessa maneira. Isso é código-golfe, então seu programa deve ser o menor possível.
Exemplos:
- Entrada: 12345, 123. Saída: 12389
- Entrada: 88888, 42. Saída: 88888
- Entrada: 0, 23. Saída: 28
- Entrada: 120, 240. Saída: a80
- Entrada: 270, 42. Saída: 2Q8 (ou 2q8)
- Entrada: 1234567890, 1234567890. Saída: 1234567890
Q
ser minúsculo? A forma real parece q
mais do que umaQ
a
definitivamente deve ser menor que caso, já que A
parece completamente diferente.