首页 > 其他分享 >后缀表达式的值

后缀表达式的值

时间:2023-03-25 13:34:54浏览次数:30  
标签:运算 16 后缀 int 256 表达式


【例1-2】后缀表达式的值

时间限制: 10 ms        内存限制: 65536 KB
提交数: 850     通过数: 119 

【题目描述】

从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。

比如,16–9*(4+3)转换成后缀表达式为:16□9□4□3□+*–,在字符数组A中的形式为:

栈中的变化情况:

运行结果:-47

提示:输入字符串长度小于250,参与运算的整数及结果之绝对值均在264264范围内,如有除法保证能整除。

【输入】

一个后缀表达式。

【输出】

一个后缀表达式的值。

【输入样例】

16 9 4 3 +*-@

【输出样例】

-47

【算法分析】

就是上面的图。

【代码实现】

 

#include<bits/stdc++.h>
using namespace std;
char s[256];
int num[256];
int comp(char s[256])
{

   int i=0,top=0,x,y;
   while(i<=strlen(s)-2)
   { 
       switch(s[i])
       {

       case'+':num[--top]+=num[top+1];break;//运算符
       case'-':num[--top]-=num[top+1];break;
       case'/':num[--top]/=num[top+1];break;
       case'*':num[--top]*=num[top+1];break;
       default: x=0; while(s[i]!=' ') x=x*10+s[i++]-'0';//数
        num[++top]=x;  break;//top++;num[top

       }
        i++;
   }
   return num[top];

}
int main()
{

  gets(s);

   cout<<comp(s)<<endl;
}

16 9 4 3 +*-@

//for(int j=0;j<=i;j++)
       cout<<num[j]<<" ";
       cout<<endl;0 16 0

0 16 9 0 0

0 16 9 4 0 0 0

0 16 9 4 3 0 0 0 0

0 16 9 7 3 0 0 0 0 0

0 16 63 7 3 0 0 0 0 0 0

0 -47 63 7 3 0 0 0 0 0 0 0

-47



Process returned 0 (0x0)   execution time : 2.474 s

Press any key to continue.

标签:运算,16,后缀,int,256,表达式
From: https://blog.51cto.com/u_14932227/6149360

相关文章

  • 正则表达式大全
    常用正则表达式一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的......
  • JS 正则表达式常用方法
    1.JS正则表达式2.使用字符串方法3.使用RegExp方法1.JS正则表达式JS正则表达式语法:#JS的正则表达式不需要使用引号包裹,PHP需要使用引号包裹。修饰符是可选的,可......
  • visual studio正则表达式替换的捕获组
    代码中有   groupBox.set_Padding(newPadding(3,9,3,3));需要替换为  groupBox.Padding=(newPadding(3,9,3,3)); 除了Padding之外,还有Size之类的其......
  • Windows下批量修改文件后缀名
    将要修改的同一后缀名的文件放在一个文件夹下,新建文本文件,写入:ren*.旧后缀名*.新后缀名,例:ren*.webp*.jpg//将webp格式文件修改为jpg格式。然后将文本文件另存为ba......
  • PYTHON - 正则表达式
    1.1正则正则表达式(RegularExpression),在代码中是预先定义好的一个规则串,这个规则串可以匹配,查找,替换那些符合规则的文本。1.2正则表达式字符串正则表达式的字符串由......
  • 浅谈后缀自动机
    后缀自动机自动机首先什么是自动机我们大多用的是\(DFA\),也就是有限状态自动机整个自动机是由一些边和点组成的,边上的权为字符简单理解就是输入一个字符串如果是我......
  • 正则表达式
    作用:校验字符串是否满足规则    转义字符 \ 改变后面那个字符原本的含义//请编写正则表达式验证身份证号码是否满足要求。//简单要求:18位,前17......
  • 常用数字与字母的正则表达式 比如 前10个数字后面和一个数字或者字母
    常用数字与字母的正则表达式比如前10个数字后面和一个数字或者字母原文链接:https://www.cnblogs.com/xuqiang7/p/11082729.html^\d{10}[A-Za-z0-9]{1}$或者^\d{10}......
  • 学习记录-JAVA正则表达式
    正则表达式java匹配方法s.matches("JAVA");s.equals("JAVA");来询问该字符串是否匹配表达式正则表达式语法整行字符加上/表示为正则表达式/123/以下所有均省略//......
  • JS常用各种正则表达式(汇总)
    JS常用各种正则表达式(汇总)原文链接:https://www.cnblogs.com/mxyr/p/10039393.html匹配URL这个url的正则表达式判断的JavaScript!比较全面的。它验证的情况包括IP,域名(dom......