Bu zorluk, Tekrar ile ilgili iki kişilik bir seride ilktir. İkincisi yakında hazır olacak.
Tekrarlama (Sadece uydurduğu bir şey) olarak adlandırılan bir dille, sonsuz dize orada oluşur 12345678901234567890...ile, 1234567890sonsuza tekrarlayarak.
Çıktı sayıları için aşağıdaki sözdizimi kullanılabilir:
+-*/: Bu, operatörü yinelenen basamak dizesine ekler.- Örnekler:
+->1+2=3( arasına bir ve+ekler )+12+*->1+2*3=1+6=7(Şu anda iki operatör kullanılması dışında yukarıdakiyle aynı)/->1/2=0(Tekrarlama tamsayı bölmesini kullanır)//->1/2/3=0/3=0(Tekrarlama, birden fazla çıkarma ve bölümle "sol ilişkilendirme" kullanır)
- Her operatör, aksi belirtilmedikçe solunda bir basamak olacak şekilde yerleştirilir
c(aşağıya bakınız).
- Örnekler:
c: Dizedeki bir sonraki basamakla birleştirilir.- Örnekler:
c+->12+3=15(c"devam eder"1ve bunu oluşturmak için bir sonraki basamakla2birleştirir12)+c->1+23=24ccc->1234
- Örnekler:
(): Sayıları işlemek için parantez.- Örnekler:
(c+)*->(12+3)*4=15*4=60(Tekrarlama işlem sırasını kullanır)(c+)/c->(12+3)/45=15/45=0(cc+c)/->(123+45)/6=168/6=28
- Örnekler:
s: Bir numara atla (numarayı sonsuz dizeden kaldırır).s+->2+3=5(satlar1)csc->124(ilkcconcats1ve2,satlama3ve soncconcats12için4)+s+->7(ilk+ekler1ve2yapmak3,satlar3ve son+ekler3için4yapmak7)cs*(++)->12*(4+5+6)=12*15=180
Yukarıdaki örneklerde, sonsuz dizgide yalnızca sınırlı miktarda rakam kullanılır. Kullanılan basamak sayısı eşittir number of operators, concats and skips + 1.
Göreviniz, bir Tekrarlama kodu dizisi verildiğinde, sonucu çıktı olarak almaktır.
Giriş ve çıkış örnekleri:
++ -> 6
- -> -1
(-)* -> -3
cscc -> 1245
(cc+c)/ -> 28
cc+c/ -> 130
cs*(++) -> 180
Bu kod golf, bayt çok kısa kod kazanır!
Özellikleri:
- Sonucun asla yukarı çıkmayacağı garantilidir
2^31-1. - Ayrıca, girişin yalnızca simgelerden oluşacağı garanti edilir
+-*/cs(). - Boş bir program çıkacaktır
1.
s+olduğunu 2+3ilk örneği olarak. Ve hala sbeni rahatsız ediyor. Nasıl +s()+genişlediğini merak ediyorum . Eğer 1+(2)+4daha (önce gelirse, 2ama görünüşte hala atlanmadan sönce gelirse , değil . Ancak sonuç o zaman (321+(3)+4s+s+
scolduğu 23ve s+bir 1+3? Does satlamak 1şimdi ya 2? Tüm örnekler işlenenlerdeki ilk işlemi kullanır 1ve 2... öyle scolmalıdır 13.
~s? Bizi asılı bırakma.