Terinspirasi oleh pertanyaan ini yang kemudian terinspirasi oleh pertanyaan ini , tulis sebuah program yang mengambil dua bilangan bulat dan menambahkannya dengan cara yang unik, dengan melakukan operasi ATAU pada segmen yang digunakan untuk menampilkannya dalam tampilan 7-segmen. Untuk referensi, digit diwakili dengan cara berikut:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Perhatikan bahwa angka 1 menggunakan dua segmen di kanan, bukan kiri. Ada dua karakter khusus yang dapat diproduksi dengan cara ini yang bukan angka. Lihat tabel tambahan di bawah ini:
| 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
Pengamatan yang berguna:
- Setiap digit plus itu sendiri sama dengan dirinya sendiri
- 8 ditambah angka sama dengan 8
- 2 ditambah 1, 3, atau 7 sama dengan huruf 'a' (harus huruf kecil)
- 4 plus 7 sama dengan 'q' atau 'Q', pilihan Anda
- Angka harus disejajarkan dengan benar, sehingga angka harus ditambahkan dari kanan ke kiri. Jika satu angka memiliki lebih banyak digit daripada yang lain, digit tambahan di awal harus tidak berubah. Tidak ada 0 di awal, kecuali angkanya persis 0.
- Semua angka akan 0 atau lebih besar. Anda tidak perlu menangani tanda '-'. (Terutama karena tidak ada yang cocok untuk penjumlahan dari '-' dan '1' atau '7'.)
Program Anda harus menerima 2 bilangan bulat dalam format apa pun yang Anda pilih, dan menghasilkan string yang berisi "jumlah" mereka ketika dihitung dengan cara ini. Ini adalah kode-golf, jadi program Anda harus sekecil mungkin.
Contoh:
- Input: 12345, 123. Output: 12389
- Input: 88888, 42. Output: 88888
- Input: 0, 23. Output: 28
- Input: 120, 240. Output: a80
- Input: 270, 42. Output: 2Q8 (atau 2q8)
- Input: 1234567890, 1234567890. Output: 1234567890
Q
seharusnya huruf kecil? Bentuk sebenarnya lebih terlihat q
daripadaQ
a
pasti harus huruf kecil, karena A
terlihat sangat berbeda.