前書き:
Windowsの標準的な電卓を見てみましょう
。この課題では、次のボタンのみを見て、他のすべてを無視します。
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
チャレンジ:
入力:次の
2つの入力を受け取ります。
- 1つは90度単位で回転を示すものです
- もう1つは、回転した電卓で押されたボタンを表す座標のリストです。
最初の入力に基づいて、上記のレイアウトを時計回りに90度ずつ回転します。したがって、入力がの場合0 degrees
、そのまま残ります。ただし、入力がの場合、270 degrees
時計回りに3回(または反時計回りに1回)回転します。以下に4つの可能なレイアウトを示します。
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
2番目の入力は、妥当な形式の座標のリストです†。例(0-index 2D integer-array):
[[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
、などの第2の入力は、等0インデックス2Dアレイ、1インデックス付きの2次元アレイ、ポイント・オブジェクトの文字列、リスト、あなたの通話であってもよいです。与えられた例の入力と比較して、x座標とy座標を入れ替えることも可能です。回答で使用した入力形式を明記してください! 517 * 6 = 3102
必要に応じて、スペースを追加できます(つまり、)。- あなたが3(すなわちの最大に、コンマの後に後続のゼロを追加することが許可されている
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つのドットが互いに続くテストケースはありません。
- 負の数のテストケースはありません。マイナス記号(
-
)はオペランドとしてのみ使用され、負としては使用されません。 - 以下のための任意のテストケースがありません
.##
(つまり、コンマの前に大手番号なしで2+.7
有効なテストケースではありませんが、2+0.7
可能性があり)。
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準的なルールが適用されるため、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
ますか?