python 高手, 求解表达式,要求结果为整数?

2015-07-06 10:22:03 +08:00
 1oscar

#如题

问题:
*对如下的列表中元素进行如下计算,要求结果必须为整数*

['3', '13', '5', '/', '+']      =>     (3+13/5)  =  6
 ['3', '4', '+', '*', '5']     =>   (3+4)  *  5  = 35
  1. 请教高手这道题怎么破?
2998 次点击
所在节点    Python
8 条回复
Septembers
2015-07-06 10:29:02 +08:00
laoyuan
2015-07-06 10:51:29 +08:00
第一题是 (13 + 5) / 3
qianlv
2015-07-06 10:51:34 +08:00
@Septembers 第二个不是逆波兰表示法吧???
firefffffffffly
2015-07-06 11:09:56 +08:00
两个示例都有些奇怪,如果是逆波兰表示法,那就用栈解决。
cc7756789
2015-07-06 11:25:10 +08:00
第一次接触这东西,这样是正确的RPN吗?
[asaa]()
hahastudio
2015-07-06 11:39:52 +08:00
题目不是很明确

是输出不要输出小数,还是说要凑出一个表达式,使得结果是整数
比如第一个样例期望的到底是 int(round(3 + 13 / 5)) = 6,还是 (13 + 5) / 3 = 6
有多种结果的话,是输出哪个结果?
比如第二个,怎么组合都会返回整数的,是返回 3 * 4 + 5 = 17 呢,还是 (3 + 4) * 5 = 35 呢
imn1
2015-07-06 11:51:34 +08:00
我想知道加减乘除没有除法运算,一堆整数怎么变成非整数?
SmiteChow
2015-07-06 15:03:26 +08:00
数字push stack, 遇到操作符号,pop stack 两次,算出结果后push stack

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/203590

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX