有理数計算機を作りたいのですが、一部の文字を無視する方法がわかりません。たとえば、プログラムが式「2/9+9/3」を計算する必要があり、その答えが簡略化されていない形式でなければならない場合、入力を取得するときに上記の式の「/」を無視するにはどうすればよいでしょうか?
7194 次
1 に答える
4
有理数について知っている構文/パーサーを定義する必要があると思います。サンプル入力では、次のようなものを保持する解析ツリーで終了したいと考えています。
add(rational(2, 9)
rational(9, 3))
次に、有理数で計算するときに使用されるさまざまなトリックを知っているコードを記述します。これにより、add
演算を実装するコードは、たとえば、入力引数の最大公約数をチェックし、数値を加算可能に変換できます。
この場合、おそらく引数を と に書き換えてからrational(2, 9)
加算rational(27, 9)
を行い、最終的に になりrational(29, 9)
ます。
単純化を行う別の関数を使用できます。これにより、それを単純化して に戻すことができ3+rational(2, 9)
ます。
于 2009-03-18T10:52:24.193 に答える