다음 연산자를 정의합니다.
한 자리 숫자의 경우 Manhattan Addition a + M b는 b를 a에 연결 한 결과입니다. 따라서 a + M b = 10a + b입니다. 따라서 일반 연산자 + M 은 다음과 같이 정의됩니다.
a + M b = 10a + b
한 자리 숫자의 경우 맨해튼 빼기 a – M b는 a에서 마지막 b를 제거한 결과입니다. 따라서 연산자 – M 은 의사 코드로 정의됩니다.
a – M b = a 마지막 b 제거
Manhattan 곱셈 a × M b는 b의 모든 b를 b의 b로 대체 한 결과입니다. Ergo, × M 은 의사 코드에서 다음과 같이 정의됩니다.
a × M b = a- > s / b / <b 사본 b> / g
Manhattan Division a ÷ M b는 × M으로 정의됩니다 .
1 ÷ M b = b의 첫 문자 a ÷ M b = a × M (1 ÷ M b)
마음에있는 모든이와 함께, 다음 연산자를 (즉, 사용 중위 식을 평가합니다 통역사를 생성 a + b
하지 a b +
또는 + a b
)
+ Addition
- Subtraction
/ Division
* Multiplication
*M Manhattan Multiplication
/M Manhattan Division
+M Manhattan Addition
-M Manhattan Subtraction
맨하탄의 각 운영자는 일반적인 상대방보다 우선 순위가 높습니다.
테스트 사례 :
> 5 +M 10 + 3
63 // 5*10 + 10 + 3 => 60 + 3
> 10 *M 2
10 // no 2s in 10
> 10 *M 1
10 // one 1 in 10 replaced once
> 23 *M 3
2333 // 23 has one 3, which is replaced with three 3s
> 23 *M 2
223 // 23 has one 2, which is replaced with two 2s
> 232 *M 2
22322 // 232 has two 2s, which are replaced with two 2s
> 232 *M 23
23...(23 times)...232 // ...
> 123 *M 2 * 3
3669 // 1223 * 3 => 3669
> 5 + 3 +M 2
37 // 5 + (3 +M 2) => 5 + 32 => 37
> 150 /M 3
150 // 150 ÷M 3 => 150 ×M 3 => 150
> 150 /M 53
1555550 // 150 ÷M 53 => 150 ×M 5 => 1555550
> 50 -M 0
5
> 500 -M 0
50
> 5234 -M 5
234
> 12 +M 633 *M 3
6333453 // = 12 +M 6333333 = 120 + 6333333 = 6333453
이것은 code-golf 이므로 바이트 단위의 가장 짧은 프로그램이 승리합니다.
리더 보드
다음은 일반 리더 보드와 언어 별 수상자 개요를 생성하는 스택 스 니펫입니다.
답변이 표시되도록하려면 다음 마크 다운 템플릿을 사용하여 헤드 라인으로 답변을 시작하십시오.
# Language Name, N bytes
N
제출물의 크기는 어디에 있습니까 ? 당신이 당신의 점수를 향상시킬 경우에, 당신은 할 수 있습니다 를 통해 눈에 띄는에 의해, 헤드 라인에 오래된 점수를 유지한다. 예를 들어 :
# Ruby, <s>104</s> <s>101</s> 96 bytes
헤더에 여러 개의 숫자를 포함 시키려면 (예 : 점수가 두 파일의 합계이거나 인터프리터 플래그 페널티를 별도로 나열하려는 경우) 실제 점수가 헤더 의 마지막 숫자 인지 확인하십시오 .
# Perl, 43 + 2 (-p flag) = 45 bytes
언어 이름을 링크로 만들어 리더 보드 스 니펫에 표시 될 수도 있습니다.
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
232 ×M 23
같은 23232
가요? 23 부 23
뒤에 2
?가 붙지 않아야 합니까?
×
하고÷
대신 ASCII의*
과를/
?