?<.!?)@
Provalo online!
O in un formato più leggibile,
? <
. ! ?
) @
Questo batte l'attuale soluzione Hexagony di 11 byte.
Spiegazione:
Se il primo numero non è 0, il programma prende il seguente percorso:
Questo legge il primo numero e le diramazioni a destra. Quindi legge il secondo numero, seguito dal wrapping e dal tentativo di leggere un terzo, ma questo non esiste quindi legge 0. Viene stampato e il programma è terminato (notare che se a> 0, poiché b non è negativo a + b> 0).
Se il primo numero è 0, il programma inizia con il seguente percorso per iniziare:
Questo legge il primo numero e i rami rimasti. Colpisce l'angolo, prendendo il percorso lungo il bordo nord-ovest perché il numero è 0 e legge il secondo numero. Si avvolge, quindi incrementa il secondo numero e stampa.
Rimbalza contro <
, stampando di nuovo il secondo ingresso incrementato. Incrementa il valore e riprende il bordo nord-est, ma questa volta perché il bordo corrente ha un valore non negativo a doppio incremento che è sicuramente positivo. Quindi tenta di ottenere un terzo input, ma riceve invece 0.
Alla fine si avvolge e viene deviato dalla freccia, quindi tenta di leggere un quarto input e ottiene di nuovo 0. Si avvolge e tenta di leggere un quinto input e riceve 0 per l'ultima volta. Questo stampa, si avvolge @
e esce.
Nota che b * (10 ^ k + 1) * 10> 0 + b = b dove k è la lunghezza di b in cifre, quindi funziona.