Inspiré par cette question qui a ensuite été inspirée par celle-ci , écrivez un programme qui prend deux entiers et les ajoute de manière unique, en effectuant une opération OU sur les segments utilisés pour les afficher dans un affichage à 7 segments. Pour référence, les chiffres sont représentés de la manière suivante:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Notez que le 1 utilise les deux segments à droite, pas à gauche. Il y a deux caractères spéciaux qui peuvent être produits de cette façon qui ne sont pas des nombres. Voir le tableau d'addition ci-dessous:
| 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
Observations utiles:
- Tout chiffre plus lui-même est égal à lui-même
- 8 plus n'importe quel chiffre est égal à 8
- 2 plus 1, 3 ou 7 est égal à la lettre 'a' (doit être en minuscule)
- 4 plus 7 est égal à 'q' ou 'Q', votre choix
- Les chiffres doivent être alignés à droite, de sorte que les chiffres doivent être ajoutés de droite à gauche. Si un numéro a plus de chiffres que l'autre, les chiffres supplémentaires au début doivent être inchangés. Il n'y a pas de 0 en tête, sauf si le nombre est exactement 0.
- Tous les nombres seront 0 ou plus. Vous n'avez pas besoin de gérer un signe «-». (Principalement parce qu'il n'y a pas de bon ajustement pour la somme d'un «-» et d'un «1» ou «7».)
Votre programme doit accepter 2 entiers dans le format de votre choix et produire une chaîne contenant leur "somme" lorsqu'elle est calculée de cette manière. Il s'agit de code-golf, donc votre programme doit être aussi petit que possible.
Exemples:
- Entrée: 12345, 123. Sortie: 12389
- Entrée: 88888, 42. Sortie: 88888
- Entrée: 0, 23. Sortie: 28
- Entrée: 120, 240. Sortie: a80
- Entrée: 270, 42. Sortie: 2Q8 (ou 2q8)
- Entrée: 1234567890, 1234567890. Sortie: 1234567890
Q
être en minuscules? La forme réelle ressemble à un q
plutôt qu'à unQ
a
devrait certainement être en minuscules, car il A
semble complètement différent.