算法:递归
思路:
遇到运算符就递归,然后遇到数字则转换为浮点型返回(用函数atof),并在返回中计算,这题的输入也在递归函数中
代码如下:
#include <iostream>
#include <cstdio>
#include <stdlib.h>
using namespace std;
const int N=1010;
char s[N];
double dfs()
{
scanf("%s",s);
if(s[0]=='+') return dfs()+dfs();
else if(s[0]=='-') return dfs()-dfs();
else if(s[0]=='*') return dfs()*dfs();
else if(s[0]=='/') return dfs()/dfs();
else return atof(s);
}
int main()
{
printf("%f",dfs());
return 0;
}