이 과제는 반복에 관한 두 가지 도전 과제 시리즈 중 첫 번째 과제입니다. 두 번째는 곧 올 것이다.
반복 (I 방금 만든 뭔가)라는 언어에서의 무한 문자열이 구성 12345678901234567890...으로, 1234567890영원히 반복합니다.
숫자를 출력하기 위해 다음 구문을 사용할 수 있습니다.
+-*/: 반복 숫자 문자열에 연산자를 삽입합니다.- 예 :
+->1+2=3( 와 사이에+삽입 )+12+*->1+2*3=1+6=7(현재 두 개의 연산자가 사용되는 것을 제외하고 위와 동일)/->1/2=0(반복은 정수 나누기를 사용합니다)//->1/2/3=0/3=0(반복은 여러 뺄셈과 나눗셈으로 "왼쪽 연결"을 사용합니다)
- 각 연산자는 왼쪽에 하나의 숫자가 있도록 삽입됩니다
c(아래 참조).
- 예 :
c: 문자열에서 다음 숫자와 연결합니다.- 예 :
c+->12+3=15(c"계속"1하고 다음 숫자와 연결2하여12)+c->1+23=24ccc->1234
- 예 :
(): 숫자 처리를위한 괄호.- 예 :
(c+)*->(12+3)*4=15*4=60(반복은 연산 순서를 사용합니다)(c+)/c->(12+3)/45=15/45=0(cc+c)/->(123+45)/6=168/6=28
- 예 :
s: 숫자를 건너 뜁니다 (무한 문자열에서 숫자를 제거합니다).s+->2+3=5(s건너 뛰기1)csc->124(제cconcats1및2상기s스킵3, 최종cconcats12행4)+s+->7(첫 번째+추가1및2만들기3,s건너 뛰기3및 마지막+추가3하기4위해 만들기7)cs*(++)->12*(4+5+6)=12*15=180
위의 예에서는 무한 문자열의 유한 자릿수 만 사용됩니다. 사용 된 자릿수는 number of operators, concats and skips + 1입니다.
반복 코드 문자열이 주어지면 결과가 출력됩니다.
입력 및 출력의 예는 다음과 같습니다.
++ -> 6
- -> -1
(-)* -> -3
cscc -> 1245
(cc+c)/ -> 28
cc+c/ -> 130
cs*(++) -> 180
이것은 코드 골프이므로 바이트 단위의 가장 짧은 코드가 이깁니다!
명세서:
- 결과가 절대로 올라가지 않도록 보장합니다
2^31-1. - 또한 입력은 기호로만 구성됩니다
+-*/cs(). - 빈 프로그램이 출력
1됩니다.
@RobertFraser Whoops, 그건 실수 였어-c는 원래 ~ 였지만, 나는 그것을 완전히 고치지 않은 것으로 보인다.
—
clismique
@TonHospel Ooh, 당신은 거기에 좋은 지적이 있습니다. "s"기호는 기본적으로 무한 문자열에서 연결된 숫자를 모두 제거하므로 두 시나리오에서 모두 그렇습니다.
—
clismique
귀하의 사양 그러나 말한다는
—
Ton Hospel
s+것입니다 2+3최초의 예로서. 그리고 여전히 s나를 괴롭힌다. 어떻게 +s()+확장 되는지 궁금합니다 . 이 경우 1+(2)+4다음 (전에 제공 2하지만 s도 전에 오는 (겉으로는 여전히 스킵 3하지 2. 그러나 결과는 1+(3)+4다음의 결과에 s따라 달라집니다 (와 비교 +s+)
sc이다 23와 s+이다 1+3? 않습니다 s을 건너 1지금 나 2? 모든 예제는 피연산자의 첫 번째 작업을 사용 1하고 2그래서 ... sc해야한다 13.
~의? 우리를 매달아 두지 마십시오.