zoukankan      html  css  js  c++  java
  • 递归-波兰表达式

     1 /*可以用回溯,但是我已经不太熟悉回溯了!!!!!!!!呜呜呜
     2  *
     3  */
     4 #include <iostream>
     5 #include <math.h>
     6 using namespace std;
     7 /*
     8  * 这个地方我确实没有想到
     9  * 我不知道怎么判断两个符号的作用对象
    10  *
    11  *
    12  *
    13  *
    14  *
    15  * 下面的题解很奇妙
    16  * 所有的case都没有break
    17  * 如果有很多符号的话可以挨个读完,这也是switch的好处
    18  * 注意返回值
    19  */
    20 double exp() {
    21     char a[100];
    22     cin >> a;
    23     switch (a[0]) {
    24         case '+':
    25             return exp() + exp();
    26         case '-':
    27             return exp() - exp();
    28         case '*':
    29             return exp() * exp();
    30         case '/':
    31             return exp() / exp();
    32         default:
    33             return atof(a);//字符转double
    34 
    35             break;
    36 
    37     }
    38 }
    39 int main() {
    40     cout << exp();
    41 }

     大体思路:

    cin>>a;这个东西能读到空格

    所以读的时候要不就是运算符,要不就是数字

    读到运算符的话,

    那就是后面两个波兰表达式.

    然后分别对某一个表达式进行上述操作.

    其实就是套定义,

    大波兰表达式套小波兰表达式

  • 相关阅读:
    02 re模块
    24 内置模块re 正则表达式
    pickle 模块
    json模块
    命名元组
    os模块
    24 内置函数 命名元组(namedtuple) ,os ,sys,序列化,pickle,json
    functools
    ccc 音乐播放
    ccc prefab
  • 原文地址:https://www.cnblogs.com/zhmlzhml/p/13233025.html
Copyright © 2011-2022 走看看