?<.!?)@
Cobalah online!
Atau dalam format yang lebih mudah dibaca,
? <
. ! ?
) @
Ini mengalahkan solusi Hexagony saat ini sebesar 11 byte.
Penjelasan:
Jika angka pertama bukan 0, program akan mengambil jalur berikut:
Ini membaca angka pertama dan cabang kanan. Kemudian ia membaca angka kedua, diikuti dengan membungkus dan mencoba membaca yang ketiga, tetapi tidak ada sehingga berbunyi 0. Ini dicetak dan program dihentikan (perhatikan bahwa jika a> 0, karena b adalah non-negatif a + b> 0).
Jika angka pertama adalah 0, program akan mengambil jalur berikut untuk memulai dengan:
Ini membaca angka pertama dan cabang yang tersisa. Itu menyentuh sudut, mengambil rute dari sepanjang tepi barat laut karena angkanya 0, dan membaca angka kedua. Itu membungkus, lalu menambah angka kedua dan mencetak.
Ini memantul terhadap <
, mencetak input kedua yang meningkat lagi. Ini menambah nilai dan mengambil tepi timur laut lagi, tapi kali ini karena tepi saat ini nilai non-negatif dua kali lipat yang pasti positif. Kemudian mencoba untuk mendapatkan input ketiga, tetapi menerima 0 sebagai gantinya.
Akhirnya ia membungkus dan dialihkan oleh panah, kemudian mencoba membaca input keempat dan mendapat 0 lagi. Itu membungkus dan mencoba membaca input kelima dan menerima 0 untuk terakhir kalinya. Ini itu mencetak, dan membungkus ke @
dan keluar.
Perhatikan bahwa b * (10 ^ k + 1) * 10> 0 + b = b di mana k adalah panjang b dalam digit, jadi ini berfungsi.