Gri Salyangoz , sayısal G / Ç için 1206 bayt, tekli G / Ç için 149 bayt
Eğlence için. İlk programın bileşimi:
- 451 bayt, sayıyı noktalara dönüştürme
- 121 bayt, çekirdek işlevi (aşağıda ayrı bir sürüm yazılmıştır)
- 634 bayt, noktaları sayıya dönüştürme
Sayısal giriş ve çıkış yapın. Girdi olup A, B, Csırasıyla. Diğer (yakın) O(1)cevapla karşılaştırıldığında, kodun karmaşıklığı vardır O(n). Fakat çok sayıda kişi için önce belleğinizi tüketebilir.
Bir çözüm bulunamazsa askıya alın.
INPUT p
POP Z r .!
f
POP Z o .
q
POP Z p [p]
GOTO [Z]
0
POP Z n .
GOTO w
1
POP Z n ..
GOTO w
2
POP Z n ...
GOTO w
3
POP Z n ....
GOTO w
4
POP Z n .....
GOTO w
5
POP Z n ......
GOTO w
6
POP Z n .......
GOTO w
7
POP Z n ........
GOTO w
8
POP Z n .........
GOTO w
9
POP Z n ..........
GOTO w
w
POP Z o .[o][o][o][o][o][o][o][o][o][o][n]
GOTO [r] [p]
GOTO q
!
POP Z A .[o]
INPUT p
POP Z r .@
GOTO f
@
POP Z B .[o]
INPUT p
POP Z r .#
GOTO f
#
POP Z C .[o]
POP H N .[B]
U
POP Z A [A]
POP Z B [B]
GOTO D [A]
GOTO $ [B]
GOTO U
$
POP Z A .[A][C]
POP Z H ..[H]
POP Z B .[N]
GOTO U
D
POP Z r .
POP Z M .
POP Z N ...........
POP Z z .[N]
POP Z V .[H]
+
GOTO l[V] [H]
POP Z H [H]
POP Z z [z]
GOTO ( [z]
GOTO +
(
GOTO ) [H]
POP Z z .[N]
POP Z M ..[M]
POP Z V .[H]
GOTO +
)
POP Z r .0[r]
POP Z M ..[M]
POP Z H .[M]
POP Z M .
POP Z V .[H]
POP Z z .[N]
GOTO +
l
POP Z r .0[r]
GOTO -
l.
POP Z r .1[r]
GOTO -
l..
POP Z r .2[r]
GOTO -
l...
POP Z r .3[r]
GOTO -
l....
POP Z r .4[r]
GOTO -
l.....
POP Z r .5[r]
GOTO -
l......
POP Z r .6[r]
GOTO -
l.......
POP Z r .7[r]
GOTO -
l........
POP Z r .8[r]
GOTO -
l.........
POP Z r .9[r]
GOTO -
-
GOTO / [M]
POP Z H .[M]
POP Z M .
POP Z V .[H]
POP Z z .[N]
GOTO +
/
OUTPUT [r]
ftamsayıları noktalara dönüştürmek için (belki) özyinelemeli bir işlevdir. Argüman kaydedilir [p]ve girilir [o].
Uiçine kaydederken S1>=S2parametrenin depolandığı bir fonksiyon testidir .B, AA-BA
Baştan kod D, noktaları sayılara dönüştüren bir saplamadır.
Temel prensibi benim C cevabı ile aynıdır (imkansız çözümler için sahte çıktı çıkarmak).
Bağımsız sürüm, 149 156 157 167 170 230 bayt, yalnızca normal G / Ç’leri destekler
Girdi ihtiyaçlar örneğin noktalar, olmak ..........üzere 10.
INPUT A
INPUT B
INPUT C
POP N H .
GOTO U
$
POP N A .[A][C]
POP Z H ..[H]
U
POP Z A [A]
POP Z N ..[N]
GOTO D [A]
GOTO $ .[B] [N]
GOTO U
D
OUTPUT .[H]
Uhesaplar A=A-Bve Dne zaman atlar A<=0. Aksi $atar A+Cetmek Ave çağrı U.
Bir çözüm bulunamazsa askıya alın.
Püf noktaları: "derleyici" nin boş dize yorumlama becerisini kötüye kullanma. GOTOKoşulsuz atlamalar yapmak için koşulları aynı şekilde ifade edebilirsiniz ve aynı hile işe yarar POP.
Not: Daha fazla 3 byte golf oynayabilirim ama bunu yaparak, benimki ve WheatWizard'ın cevabı aynı mantığa sahip olacaktı. Sonuç muhtemelen en kısa GraySnail çözümüdür ve bunu kanıtlamaya çalışıyorum.