POJ 2694 逆波兰表达式 解题报告

POJ 2694 逆波兰表达式 解题报告

编号:2694

 

考查点:递归

 

思路:一开始拿道题还以为自己搞不定,在纸上写写画画后突然相当原来递归可以多个return,然后就想到switch,剩下的就好办了,仍然保持一次编译通过,一次AC的战绩.oh yeah

 

提交情况:写写画画十分钟,代码五分钟.一次AC1000K,0MS..

 

Source Code

 


//POJ Grids 2694
#include <string>
#include 
<iostream>
using namespace std;

double calc()
{
    
string s;
    cin
>>s;
    
switch (s[0])
    {
    
case '+':
        
return calc()+calc();break;
    
case '-':
        
return calc()-calc();break;
    
case '*':
        
return calc()*calc();break;
    
case '/':
        
return calc()/calc();break;
    
default:
        
return atof(s.c_str());
    }
}

int main()
{
    
double f = calc();
    printf(
"%f\n",f);

    
return 0;
}

总结:相信自己,多想下思路自然有.。书上的竟然和我的一样,啊哈哈,学到个atof.

 

 

 

                                                       By   Ns517

                                                      Time 09.02.05

posted @ 2009-02-05 14:30  端木  阅读(1091)  评论(0编辑  收藏  举报