?<.!?)@
Wypróbuj online!
Lub w bardziej czytelnym formacie,
? <
. ! ?
) @
To pokonuje obecne rozwiązanie Hexagony o długości 11 bajtów.
Wyjaśnienie:
Jeśli pierwsza liczba nie jest równa 0, program przyjmuje następującą ścieżkę:
Odczytuje pierwszy numer i rozgałęzia się. Następnie odczytuje drugą liczbę, a następnie zawija i próbuje odczytać trzecią, ale to nie istnieje, więc czyta 0. To jest drukowane i program kończy się (zauważ, że jeśli a> 0, ponieważ b jest nieujemne a + b> 0).
Jeśli pierwsza liczba to 0, program rozpoczyna następującą ścieżkę:
Odczytuje pierwszy pozostały numer i gałęzie. Uderza w róg, biorąc trasę od północno-zachodniej krawędzi, ponieważ liczba wynosi 0 i odczytuje drugą liczbę. Zawija się, a następnie zwiększa drugi numer i drukuje.
Odbija się o <
, drukując ponownie zwiększoną drugą wartość wejściową. Zwiększa wartość i ponownie przyjmuje północno-wschodnią krawędź, ale tym razem, ponieważ bieżąca krawędź jest dwukrotną nieujemną wartością, która jest zdecydowanie dodatnia. Następnie próbuje uzyskać trzecie wejście, ale zamiast tego otrzymuje 0.
Na koniec zawija się i zostaje przekierowany przez strzałkę, a następnie próbuje odczytać czwarte wejście i ponownie otrzymuje zero. Zawija się i próbuje odczytać piąte wejście i po raz ostatni otrzymuje 0. To drukuje i owija się na @
i wychodzi.
Zauważ, że b * (10 ^ k + 1) * 10> 0 + b = b gdzie k jest długością b cyfr, więc to działa.