洛谷p1981 表达式求值
2024-09-01 10:53:36
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std;
char s[100007];
typedef long long ll;
ll numSt[100007],opSt[100007],ans[63];
int main(){
while(~scanf("%s",s)){
int numTail=0,opTail=0,len=strlen(s),i,cnt=0;
for(i=0;i<len;++i){
if(s[i]=='+'||s[i]=='*'){
if(s[i]=='+') opSt[opTail++]=0;
else opSt[opTail++]=1;
}
else{
ll base=0;
while(i<len&&s[i]!='*'&&s[i]!='+'){
base=base*10+(s[i]-'0');
i++;
}
i--;
numSt[numTail++]=base;
if(i==len-1||s[i+1]=='+'){
while(numTail&&opTail){
ll a=numSt[--numTail],b=numSt[--numTail];
ll op=opSt[--opTail];
if(op==1){
a*=b;
}
else{
a+=b;
}
numSt[numTail++]=a;
}
}
}
}
while(cnt<4){
ans[++cnt]=numSt[0]%10;
numSt[0]/=10;
}
int base=0;
for(i=cnt;i>=1;--i) base=base*10+ans[i];
printf("%d\n",base);
}
return 0;
}
最新文章
- HTML5- Canvas入门(三)
- C#事件学习
- C#生成图片缩略图(2种思路)
- php apache用户写文件夹权限设置
- 并发中的Native方法,CAS操作与ABA问题
- [游戏学习22] MFC 井字棋 双人对战
- Jqplot使用总结之二(双Y轴)
- xargs i I{} 参数说明
- [React] Extracting Private React Components
- 什么是防盗链设置中的空Referer
- Nagios监控lvs服务
- JS数组filter()、map()、some()、every()、forEach()、lastIndexOf()、indexOf()实例
- 【java】泛型的作用是在编译阶段防止错误输入,绕过编译就绕过泛型,可用反射验证
- 网络流24题 ——运输问题 luogu 4015
- 【Alpha】Scrum Meeting 10
- Qt5对XML文件操作
- Visual Studio Code--开发大大们都在用的编辑器
- centos7切换图像界面和dos界面
- android平台蓝牙编程
- 「日常训练」Known Notation(ZOJ-3829)
热门文章
- HATEOAS的简单认识
- Vue基础之生命周期函数[残缺版]!
- bootstrap 轮播图带缩列图两端对齐,并自动换行然后左对齐!
- 【Soul源码探秘】插件链实现
- Model(metaclass=ModelBase)
- (010)每日SQL学习:按字母顺序排列字符串
- Index-Only Scans and Covering Indexes
- vim 行号的显示与隐藏
- 最简单直接地理解Java软件设计原则之依赖倒置原则
- orm(Manager isn&#39;t accessible via %s instances"; % cls.__name)报错