Надихнувшись цим питанням, яке ще більше надихнуло це , напишіть програму, яка бере два цілих числа та додає їх унікальним чином, виконуючи операцію АБО на сегментах, які використовуються для їх відображення на 7-сегментному дисплеї. Для довідки, цифри представлені таким чином:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Зауважте, що 1 використовує два сегменти справа, а не ліворуч. Є два спеціальні символи, які можуть бути створені таким чином, які не є цифрами. Дивіться таблицю додавання нижче:
| 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
Корисні спостереження:
- Будь-яка цифра плюс сама по собі дорівнює
- 8 плюс будь-яка цифра дорівнює 8
- 2 плюс 1, 3 або 7 дорівнює букві "a" (має бути малою літерою)
- 4 плюс 7 дорівнює "q" або "Q", ваш вибір
- Числа повинні бути вирівняні справа, тому цифри слід додавати справа наліво. Якщо одне число має більше цифр, ніж інше, зайві цифри на початку повинні бути незмінними. Немає провідних 0, якщо тільки число не дорівнює 0.
- Усі числа будуть 0 або більше. Вам не потрібно обробляти знак "-". (Головним чином через те, що немає суми "-" і "1" або "7".
Ваша програма повинна прийняти 2 цілих числа у будь-якому обраному вами форматі та вивести рядок, що містить їх "суму", коли вона обчислюється таким чином. Це код-гольф, тому ваша програма повинна бути якомога меншою.
Приклади:
- Вхід: 12345, 123. Вихід: 12389
- Вхід: 88888, 42. Вихід: 88888
- Вхід: 0, 23. Вихід: 28
- Вхід: 120, 240. Вихід: a80
- Вхід: 270, 42. Вихід: 2Q8 (або 2q8)
- Вхід: 1234567890, 1234567890. Вихід: 1234567890
Q
бути маленька літера? Фактична форма виглядає q
скоріше, ніж аQ
a
мабуть, це малі регістри, оскільки A
виглядає зовсім інакше.