0

我想做一个有理数计算器,但我不知道如何忽略一些字符。例如,如果程序要计算表达式“2/9+9/3”并且答案应该是非简化形式,那么如何在输入时忽略上面表达式中的'/'?

4

1 回答 1

4

我认为您需要定义一个了解有理数的语法/解析器。对于您的示例输入,您希望得到一个包含如下内容的解析树:

   add(rational(2, 9)
       rational(9, 3))

然后,您将编写代码,了解使用有理数进行计算时使用的各种技巧,以便实现该add操作的代码可以检查其输入参数的最大公约数,并将数字转换为可加数。

在这种情况下,它可能会将参数重写为rational(2, 9)and rational(27, 9),然后进行加法运算,从而以 . 结尾rational(29, 9)

您可以有一个单独的函数进行简化,可以将其简化回3+rational(2, 9).

于 2009-03-18T10:52:24.193 回答