?<.!?)@
Попробуйте онлайн!
Или в более читаемом формате,
? <
. ! ?
) @
Это превосходит текущее решение Hexagony в 11 байтов.
Объяснение:
Если первое число не равно 0, программа выберет следующий путь:

Это читает первый номер и ветви справа. Затем он читает второе число, за которым следует перенос и попытка прочитать третье, но этого не существует, поэтому он читает 0. Это печатается, и программа завершается (обратите внимание, что если a> 0, так как b неотрицательный a + Ь> 0).
Если первое число равно 0, программа выбирает следующий путь:

Это читает первый номер и оставленные ветви. Он попадает в угол, беря маршрут по северо-западному краю, потому что число равно 0, и читает второе число. Он оборачивает, затем увеличивает второй номер и печатает.

Он отскакивает от <
, снова печатая увеличенный второй ввод. Он увеличивает значение и снова принимает северо-восточный фронт, но на этот раз, потому что текущий фронт - неотрицательное значение, увеличенное вдвое, что определенно положительно. Затем он пытается получить третий вход, но вместо этого получает 0.

Наконец, он переносится и отклоняется стрелкой, затем пытается прочитать четвертый ввод и снова получает 0. Он оборачивается и пытается прочитать пятый вход и получает 0 в последний раз. Это он печатает, и переносит @
и выходит.
Обратите внимание, что b * (10 ^ k + 1) * 10> 0 + b = b, где k - длина b в цифрах, так что это работает.