소개:
Windows에서 표준 계산기를 살펴 보자.
이 도전에서는 다음 버튼 만보고 나머지는 모두 무시합니다.

7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
도전:
입력 :
두 가지 입력을받습니다 :
- 하나는 90 도씩 회전을 나타내는 것입니다.
- 다른 하나는 회전 된 계산기에서 누른 버튼을 나타내는 좌표 목록입니다.
첫 번째 입력을 기반으로 위에서 언급 한 레이아웃을 시계 방향으로 90 도씩 회전시킵니다. 따라서 입력이 0 degrees인 경우 그대로 유지됩니다. 그러나 입력이270 degrees 인 시계 방향으로 세 번 (또는 시계 반대 방향으로 한 번) 회전합니다. 가능한 네 가지 레이아웃은 다음과 같습니다.
Default / 0 degrees:
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
90 degrees clockwise:
0 1 4 7
0 2 5 8
. 3 6 9
+ - * /
180 degrees:
+ . 0 0
- 3 2 1
* 6 5 4
/ 9 8 7
270 degrees clockwise / 90 degrees counterclockwise:
/ * - +
9 6 3 .
8 5 2 0
7 4 1 0
두 번째 입력은 합리적인 형식의 좌표 목록입니다 † . 예를 들어 (0 인덱스 2D 정수 배열) :
[[1,2],[2,3],[0,3],[1,0],[1,1]]
산출:
합계와 결과 (및 등호 =)를 모두 출력합니다 .
예 :
입력이 270 degreesand[[1,2],[2,3],[0,3],[1,0],[1,1]] 인 경우 출력 같습니다.
517*6=3102
도전 규칙 :
- † 입력의 형식은 합리적입니다. 첫 번째 입력이 될 수있다
0-3,1-4,A-D,0,90,180,270제 2 입력 등 내 통화 0 인덱스 2D 어레이 인덱스 1 차원 어레이, 문자열, 포인트 오브젝트리스트 일 수있다, 등등. 주어진 입력 예와 비교하여 x 및 y 좌표를 교체 할 수도 있습니다. 답변에 사용한 입력 형식을 명시하십시오! - 공백을 추가 할 수 있습니다 (예 :
517 * 6 = 3102원하는 경우 . - 세 가지의 최대 (즉,에, 쉼표 후 후행 0을 추가 할 수 있습니다
3102.0/3102.00/3102.000대신3102또는0.430대신0.43). - 출력에 괄호를 추가 할 수 없으므로
(((0.6+4)-0)/2)/4=0.575없으므로 유효한 출력이 아닙니다. - 언어에 다른 피연산자 기호를 사용할 수 있습니다. 그래서
×나·대신*; 또는÷대신/; 기타 - 피연산자를 입력 할 때 계산기가 자동으로 계산하므로 연산자 우선 순위를 무시해야합니다! 그래서
10+5*3에서 발생합니다45((10+5)*3=45,)하지25(10+(5*3)=25)
(즉,10→+→5→*(그것은 지금 표시 화면 15) →3→=(지금 답을 표시45)).eval결과 합계에서 유사한 기능을 사용할 때이 점을 명심하십시오 . - 0으로 나누는 테스트 사례는 없습니다.
- 결과적으로 소수점 이하 3 자리를 초과하는 테스트 사례가 없으므로 결과를 반올림 할 필요가 없습니다.
- 여러 피연산자가 서로 뒤 따르거나 두 개의 점이 서로 뒤 따르는 테스트 사례는 없습니다.
- 음수에 대한 테스트 사례는 없습니다. 빼기 부호 (
-)는 음수가 아닌 피연산자로만 사용됩니다. - 거기에 대한 테스트 케이스되지 않습니다
.##즉, (쉼표 전에 선두 번호없이2+.7유효한 테스트 케이스 수 없지만2+0.7될 수있다).
일반 규칙:
- 이것은 코드 골프입니다 이므로 바이트 단위의 최단 답변이 이깁니다.
코드 골프 언어가 코드 골프 언어 이외의 언어로 답변을 게시하지 못하게하지 마십시오. '모든'프로그래밍 언어에 대한 가능한 한 짧은 대답을 생각해보십시오. - 표준 규칙이 적용됩니다 답변에 되므로 STDIN / STDOUT, 적절한 매개 변수가있는 기능 / 방법, 전체 프로그램을 사용할 수 있습니다. 당신의 전화.
- 기본 허점 은 금지되어 있습니다.
- 가능하면 코드 테스트 링크를 추가하십시오.
- 또한 필요한 경우 설명을 추가하십시오.
테스트 사례 :
Input: 270 degrees & [[1,2],[2,3],[0,3],[1,0],[1,1]]
Output: 517*6=3102
Input: 90 degrees & [[3,1],[0,0],[0,1],[3,3],[2,0],[0,3],[0,0],[0,2],[3,0],[2,1]]
Output: 800/4+0.75=200.75
Input: 0 degrees & [[0,0],[1,0],[2,0],[3,0],[1,2],[2,1],[2,2]]
Output: 789/263=3
Input: 180 degrees & [[3,0],[1,0],[1,2],[0,0],[3,2],[0,1],[2,0],[0,3],[2,1],[0,3],[3,2]]
Output: 0.6+4-0/2/4=0.575
1+-*/+-*/2의지가 제공 0.5윈도우 (10) 계산기.
[1,3],
2+.7? 와 같이 선행 0없이 1보다 작은 소수를 처리해야 합니까?