gpt4 book ai didi

c# - 最好不使用堆栈或队列生成数学表达式

转载 作者:行者123 更新时间:2023-11-30 07:38:23 29 4
gpt4 key购买 nike

给定 +、/、-、* 的允许运算符,并给定用户输入的单位数字列表(允许任何长度),我如何输出数学表达式的所有可能组合(和结果值)可以用数字和给定的运算符常量集形成?例如,我还希望允许可扩展性,这样我就可以轻松地在组合中添加另一个运算符(如果可能的话)。

最好的解决方案不会使用堆栈或队列,但它们并非 Not Acceptable 。

例如,如果输入是:

{1,3,5,7}

那么可能的输出是

(1+3)-(5+7) = -8
(1+5)-(3-7) = 10
etc...

(13+57) 不是可能的组合,因为不允许组合数字。

另请注意:我能够使用 Scheme 编写类似的东西来执行此操作,但我似乎无法使用 Java 或 C# 来完成。

最佳答案

我不是 Java 或 C# 程序员,所以这里有一个语言无知的答案。您选择的两种语言似乎都没有 eval 功能。我建议您采用反向波兰表示法。将输入捕获为字符串中的字符或您想要的任何内容;也将运算符编码为字符。然后,使用迭代器或其他任何东西,生成输入数字的所有可能排序,然后是正确数量的二元运算符的所有可能排序。然后使用几个左右的 switch 语句将每个字符串转换为结果。

抱歉,我不能说得更清楚了,得赶时间了。

关于c# - 最好不使用堆栈或队列生成数学表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1939902/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com