计算器到处都有,有啥好写的呢?
我们在写程序时,对于长串计算,我们通常直接输入了,让计算机高级语言(例如C++)给我们算就行了。但是,仔细想想这件事其实并不简单。
ps:最初想做这件事的原因是:我在大学想写一个带GUI界面的计算器,就在这里被卡住了。
其实这是一个很有名的问题,大家有兴趣可以搜一下 逆波兰式
逆波兰式
逆波兰式即为后缀表达式,我们生活中算数表达式一般都是中序表达式。人类易于理解中序表达式,但计算机更容易处理后缀表达式。
直奔解决方案
我们的做法基本分
- 确定好符号集和它们的优先级;
- 中序表达式转化成后缀表达式;
- 根据后缀表达式得到最终结果。
1 | #include<iostream> |