高度な計算機に入力される文字列を評価するプログラムを作成する必要があります。
プログラムは、stdinを使用して入力を受け入れ、正しい答えを出力する必要があります。stdinを受け入れる関数を持たない言語の場合、関数readLine
を想定してprint
これらのタスクを処理できます。
要件:
- いかなる種類の「評価」関数も使用しません
- 浮動小数点数と負数を処理できます
- 少なくとも+、-、*、/、および^演算子をサポートします
- 通常の順序をオーバーライドするための括弧と括弧をサポート
- 演算子と数字の間に1 つ以上のスペースを含む入力を処理できます
- 標準の操作順序を使用して入力を評価します
テストケース
入力
10 - 3 + 2
出力
9
入力
8 + 6 / 3 - 7 + -5 / 2.5
出力
1
入力
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
出力
41
出力の末尾に末尾を付けることができます
—
ケビンブラウン
.0
。精度についてはあまりよくわかりませんが、もっと良い方がいいです。
Stack OverflowバージョンはMathematical expression evaluator(full PEMDAS)でした。その答えの多くは行数を数えています(?!?)。それでもcにはいくつかの簡潔な答えがあります。
—
dmckee
PN / RPN計算機のボーナス?
—
Mateen Ulhaq
.0
整数の場合、末尾に末尾が付いていても大丈夫ですか?また、計算機はどれほど正確でなければなりませんか(浮動小数点の精度などに関して)?