介绍:
让我们看一下Windows中的标准计算器:
对于这一挑战,我们将仅查看以下按钮,而忽略其他所有内容:
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
挑战:
输入:
您将收到两个输入:
- 一种是表示以90度为增量的旋转
- 另一个是代表旋转计算器上按下的按钮的坐标列表。
基于第一个输入,我们将上述布局以90度为增量顺时针旋转。因此,如果输入为0 degrees
,则保持原样;但是如果输入为270 degrees
,则它将顺时针旋转3次(或逆时针旋转1次)。这是四个可能的布局:
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 degrees
和[[1,2],[2,3],[0,3],[1,0],[1,1]]
,则输出将变为:
517*6=3102
挑战规则:
- †输入可以采用任何合理的格式。第一输入可以是
0-3
,1-4
,A-D
,0,90,180,270
,等。第二输入可以是0索引2D阵列,1-索引2D阵列,串,点对象的列表等你的电话。与给定的示例输入相比,甚至可以交换x和y坐标。请说明您在答案中使用的输入格式! 517 * 6 = 3102
如果需要,您可以添加空格(即)。- 您可以在逗号后添加尾随零,最多为三个(即
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的测试用例不会出现。
- 不会有超过三位小数位数的测试用例,因此不需要四舍五入结果。
- 不会有多个操作数彼此跟随或两个点彼此跟随的测试用例。
- 负数不会有任何测试用例。减号(
-
)仅用作操作数,而不用作负数。 .##
逗号前不会有任何没有前导号的测试用例(即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
在Windows(10)计算器上给出。
[1,3],
2+.7
?