波兰表达式(递归)
程序员文章站
2022-07-14 14:13:45
...
波兰式的定义:
波兰式是在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之前,所以,这种表示法也称为前缀表达式。
要求输出逆波兰表达式的值。
这个题目其实是波兰表达式,题目可能写错了。
递归解决方法:
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
double exp() {
char s[20];
cin >> s;
switch(s[0]) {
case '+':
return exp() + exp(); //递归调用,求出自身包含的波兰式
case '-':
return exp() - exp();
case '*':
return exp() * exp();
case '/':
return exp() / exp();
default:
return atof(s); //将char转换成对应的浮点数
break;
}
}
int main() {
printf("%lf",exp());
return 0;
}
如果发现有不正确的地方,欢迎在评论区指出