最近、新しい言語を書いています。操作の順序を処理する必要を避けるために、各式を適切に括弧で囲んで、これを完全に回避しています。
括弧は40〜41の文字コードであるため、コードはできるだけ短くする必要があります。
例
1+2*3
(1+(2*3))
2*(3+4)
(2*(3+4))
2*3/4+3
(((2*3)/4)+3)
342*32/8
((342*32)/8)
ルール
処理する必要がある操作は*
、/
(乗算)、(除算)、+
(加算)、および-
(減算)のみです。
- 操作の順序は次のとおりです。
- 括弧
- 乗算、除算
- 加算、減算
- あなたは左右に行くことを好むべきです
- 入力番号は常に正の整数になります(ボーナスを参照)
ボーナス
否定を処理する場合は-20%:
3+-5
(3+(-5))
入力内にスペースを入れることを許可する場合、-5%:
3 + 4
(3+4)
入力で小数を処理できる場合は-10%:
1+.12
(1+.12)
1+0.21/3
(1+(0.21/3))
25
「括弧は40〜41の文字コードであるため、コードはできるだけ短くする必要があります。」さて、あなたはただとんでもないことです。; P
—
ETHproductions
そして、これは接頭辞(ポーランド語)表記よりも簡単です。
—
wizzwizz4
@flawr私はそれを見ましたが、その質問はあなたが式を括弧で囲むすべての方法を出力するという事実で非常に異なっています。ここでは、私はコードのように有意差は自明この挑戦のために変更することはできませんと思う操作のアカウントの順に取らなければならない
—
Downgoat
重要なテストケース:
—
マーティン・エンダー
1+2+3+4
(特定のソリューションとしてparenthesiseかもしれない((1+2)+(3+4))
)