Ce défi est le premier d'une série de deux défis sur la répétition. Le second sera bientôt disponible.
Dans une langue appelée la répétition (quelque chose que je viens d'inventer), il y a une chaîne infinie de 12345678901234567890..., avec 1234567890répétition pour toujours.
La syntaxe suivante est disponible pour les numéros de sortie:
+-*/: Cela insère l'opérateur dans la chaîne de chiffres répétitifs.- Exemples:
+->1+2=3(L'+insère un+entre1et2)+*->1+2*3=1+6=7(Identique à ci-dessus, sauf que deux opérateurs sont utilisés maintenant)/->1/2=0(la répétition utilise une division entière)//->1/2/3=0/3=0(la répétition utilise "l'association gauche" avec plusieurs soustractions et divisions)
- Chaque opérateur est inséré de sorte qu'il ait un chiffre à sa gauche, sauf s'il y en a
c(voir ci-dessous).
- Exemples:
c: Concatène avec le chiffre suivant de la chaîne.- Exemples:
c+->12+3=15(Lec"continue" le1et le concatène avec le chiffre suivant,,2pour former12)+c->1+23=24ccc->1234
- Exemples:
(): Supports pour le traitement des nombres.- Exemples:
(c+)*->(12+3)*4=15*4=60(la répétition utilise l'ordre des opérations)(c+)/c->(12+3)/45=15/45=0(cc+c)/->(123+45)/6=168/6=28
- Exemples:
s: Ignorer un nombre (supprime le nombre de la chaîne infinie).s+->2+3=5(ssaute1)csc->124(le premiercconcats1et2, lesssauts3et les dernierscconcats12à4)+s+->7(La première+ajoute1et2à faire3,sskips3, et la finale+ajoute3à4faire7)cs*(++)->12*(4+5+6)=12*15=180
Dans les exemples ci-dessus, seule une quantité finie de chiffres dans la chaîne infinie est utilisée. Le nombre de chiffres utilisé est équivalent à number of operators, concats and skips + 1.
Votre tâche consiste, lorsque vous recevez une chaîne de code de répétition, à sortir le résultat.
Voici des exemples d'entrée et de sortie:
++ -> 6
- -> -1
(-)* -> -3
cscc -> 1245
(cc+c)/ -> 28
cc+c/ -> 130
cs*(++) -> 180
C'est le golf de code, donc le code le plus court en octets gagne!
Spécifications:
- Vous avez la garantie que le résultat n'ira jamais au-dessus
2^31-1. - Vous avez également la garantie que l'entrée ne comprendra que les symboles
+-*/cs(). - Un programme vide sortira
1.
s+c'est 2+3son premier exemple. Et scontinue de m'écouter. Je me demande comment se +s()+développe. S'il est 1+(2)+4alors (vient avant 2mais squi vient même avant les (skips apparemment encore 3, non 2. Si toutefois le résultat est 1+(3)+4alors l'effet d'un sdépend de ce qui vient après (comparez-le avec +s+)
scest 23et s+est 1+3? Ne ssautez le 1maintenant ou 2? Tous les exemples utilisent la première opération sur les opérandes 1et 2... il scdevrait en être ainsi 13.
~s? Ne nous laisse pas pendre.