逆波兰表达式 c++
题目:逆波兰表达式定义:1)一个数是一个逆波兰表达式值为该数2)运算符 逆波兰表达式 逆波兰表达式 是其表达式,只有两个逆波兰表达式的值运算的结果思路:用递归解决递归形式问题。#include <iostream>#include<cstdlib>#include<cstdio>using namespace std;double exp()//读入一个逆波兰表
·
题目:
逆波兰表达式定义:1)一个数是一个逆波兰表达式值为该数
2)运算符 逆波兰表达式 逆波兰表达式 是其表达式,只有两个逆波兰表达式的值运算的结果
思路:用递归解决递归形式问题。
#include <iostream>
#include<cstdlib>
#include<cstdio>
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);//atof把字符串转为浮点型。当不是运算符而是逆波兰表达式时则返回它自身的值
break;
}
}
int main()
{
printf("%lf", exp());
return 0;
}
样例:
更多推荐
已为社区贡献1条内容
所有评论(0)