Ispirato da questa domanda che è stata ulteriormente ispirata da questa , scrivere un programma che prende due numeri interi e li aggiunge in un modo unico, eseguendo un'operazione OR sui segmenti utilizzati per visualizzarli in un display a 7 segmenti. Per riferimento, le cifre sono rappresentate nel modo seguente:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Si noti che 1 utilizza i due segmenti a destra, non a sinistra. Esistono due caratteri speciali che possono essere prodotti in questo modo e non sono numeri. Vedi la tabella delle aggiunte di seguito:
| 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
Osservazioni utili:
- Qualsiasi cifra più se stessa equivale a se stessa
- 8 più qualsiasi cifra è uguale a 8
- 2 più 1, 3 o 7 è uguale alla lettera "a" (deve essere minuscola)
- 4 più 7 equivalgono a 'q' o 'Q', a scelta
- I numeri devono essere allineati a destra, quindi le cifre devono essere aggiunte da destra a sinistra. Se un numero ha più cifre dell'altro, le cifre extra all'inizio devono rimanere invariate. Non ci sono 0 iniziali, a meno che il numero non sia esattamente 0.
- Tutti i numeri saranno 0 o superiori. Non è necessario gestire un segno "-". (Principalmente perché non c'è una buona misura per la somma di un '-' e un '1' o '7'.)
Il tuo programma dovrebbe accettare 2 numeri interi in qualsiasi formato tu scelga e produrre una stringa contenente la loro "somma" quando calcolata in questo modo. Questo è code-golf, quindi il tuo programma dovrebbe essere il più piccolo possibile.
Esempi:
- Ingresso: 12345, 123. Uscita: 12389
- Ingresso: 88888, 42. Uscita: 88888
- Ingresso: 0, 23. Uscita: 28
- Ingresso: 120, 240. Uscita: a80
- Ingresso: 270, 42. Uscita: 2Q8 (o 2q8)
- Ingresso: 1234567890, 1234567890. Uscita: 1234567890
Qessere minuscolo? La forma attuale sembra qpiuttosto che unaQ
adeve assolutamente essere inferiore caso, però, dal momento che Asembra completamente diverso.