- 締切済み
逆ポーランド記法への変換方法を教えてください。
Visual Studio C++ 6.0で逆ポーランド電卓のプログラムを作っていますが、式の変換方法がわからないので教えていただければ助かります。 たとえば (8 + 9 * -8) * 10 だと 8 9 -8 * + 10 * に変換できますが、 -(8 + 9 * -8) * 10 だとどう変換すればよいのかがわかりません。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- goosyu
- ベストアンサー率58% (36/62)
回答No.2
「-(8 + 9 * -8) * 10」のような場合、「-1 * (8 + 9 * -8) * 10」に置き換えてから、もともとの処理を行います。 処理的には先頭に「-(」とある場合にのみ、「-1*(」に置換するだけだったと思います。
- salsberry
- ベストアンサー率69% (495/711)
回答No.1
二項演算子のマイナスとは別に、単項演算子のマイナス(符号の反転)を導入してください。
質問者
お礼
salsberry さん回答ありがとうございました。 単項演算子のマイナス(符号の反転)の導入をするのは、私のプログラム力では無理のようです。
お礼
お~ -1 をかければよかったんですね これなら何とかプログラムを組めそうです。 goosyu さん回答ありがとうございました。