KaQqi 发表于 2019-4-9 17:52

逆波兰表达式

递归的思想就是把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,解决当前问题就解决了全部问题。



#include <stdio.h>
#include <string.h>
#include <bits/stdc++.h>


int result = 0;
int number1,number2;//待运算的两个数
using namespace std;

float Calculate()
{
        char data;
        cin >> data;

        if(!strcmp(data,"+")) return Calculate() + Calculate();
        if(!strcmp(data,"-")) return Calculate() - Calculate();
        if(!strcmp(data,"*")) return Calculate() * Calculate();
        if(!strcmp(data,"/")) return Calculate() / Calculate();
       
               
        return atof(data);

       
}

int main()
{
        float result = Calculate();
        printf("%f",result);
        return 0;       
}

龙龙龙龙龙龙 发表于 2019-4-9 18:07

谢谢分享

nj001 发表于 2019-4-9 22:10

厉害厉害{:1_893:}{:1_893:}

苏紫方璇 发表于 2019-4-9 23:44

楼主代码不全吧,我记得逆波兰一般是用栈结构实现的

KaQqi 发表于 2019-4-10 18:23

苏紫方璇 发表于 2019-4-9 23:44
楼主代码不全吧,我记得逆波兰一般是用栈结构实现的

栈是一种解法,递归也有一种解法。递归和栈有异曲同工之妙的

AA_BB_2AB 发表于 2021-4-2 16:02

谢谢,祝您身体健康!

GaaraZL 发表于 2021-4-7 11:01

感谢楼主分享,学习了
页: [1]
查看完整版本: 逆波兰表达式