表达式求值 第九届河南省赛
来源:互联网 发布:ubuntu 字库 编辑:程序博客网 时间:2024/05/16 10:57
问题 A: 表达式求值
时间限制: 1 Sec 内存限制: 64 MB提交: 17 解决: 14
[提交][状态][讨论版]
题目描述
假设表达式定义为: 1. 一个十进制的正整数 X 是一个表达式。 2. 如果 X 和 Y 是 表达式,则 X+Y, X*Y 也是表达式; *优先级高于+. 3. 如果 X 和 Y 是 表达式,则 函数 Smax(X,Y)也是表达式,其值为:先分别求出 X ,Y 值的各位数字之和,再从中选最大数。 4.如果 X 是 表达式,则 (X)也是表达式。 例如: 表达式 12*(2+3)+Smax(333,220+280) 的值为 69。 请你编程,对给定的表达式,输出其值。
输入
【标准输入】 第一行: T 表示要计算的表达式个数 (1≤ T ≤ 10) 接下来有 T 行, 每行是一个字符串,表示待求的表达式,长度<=1000
输出
【标准输出】 对于每个表达式,输出一行,表示对应表达式的值。
样例输入
312+2*312*(2+3)12*(2+3)+Smax(333,220+280)
样例输出
186069
这是亮神思想全程递归
#include <stdio.h>#include<algorithm>#include<iostream>#include<cstring>using namespace std;char s[2003];int max(int a,int b){ if(a>b) { return a; } else { return b; }}int jud(int a){ int sum=0; while(a) { sum+=a%10; a=a/10; } return sum;}int solve(char s[]){ int len; len=strlen(s); int k=0; int b=0,t=0; for(int i=0;i<len;i++) { if(s[i]=='(') { k++; } if(s[i]==')') { k--; } if(s[i]=='+'&&k==0) { s[i]='\0'; return (solve(s))+(solve(s+i+1)); } if(s[i]=='*'&&k==0) { t=i; } if(s[i]==','&&k==1) { b=i; } } if(t!=0) { s[t]='\0'; return solve(s)*solve(s+t+1); } if(b!=0) { s[b]='\0'; // s[len-1]='\0'; return max(jud(solve(s+5)),jud(solve(s+b+1))); } if(s[0]=='(') { s[len-1]='\0'; return solve(s+1); } return atoi(s);}int main(){ int t; scanf("%d",&t); while(t--) { //int len; scanf("%s",s); cout<<solve(s)<<endl;; //len=strlen(s); //cout<<atoi(s)<<endl; } return 0;}
0 0
- 表达式求值 第九届河南省赛
- 第九届河南省赛 A nyoj1272 表达式求值
- 表达式求值(河南省第九届省赛)
- NYOJ1272 表达式求值(后缀求值,特殊处理)(河南省第九届ACM省赛)
- 河南省第九届acm省赛 A:表达式求值 逆波兰表达式
- 【河南省第九届ACM竞赛 A 题 && zzulioj 1923: 表达式求值 + 栈】
- 2016 河南省第九届ACM程序设计大赛 nyoj 1272 表达式求值
- nyoj 1272 表达式求值--河南省第九届省赛A题
- nyist 1272 表达式求值 (河南省第九届省赛) 中缀转后缀
- nyoj1272 zzulioj1923表达式求值(河南省acm第九届省赛)
- 第四届河南省ACM 表达式求值 栈
- 第九届河南省程序设计大赛-NYOJ-1272-表达式求值(中缀式转后缀式 逆波兰表达式)
- 第八届河南省赛试题挑战密室表达式求值类_NYOJ1236
- noj 305 表达式求值 第四届河南省程序设计大赛//待续~~~
- (精)河南省第4届acm(表达式求值)
- nyoj305表达式求值(第四届河南省程序设计大赛)
- 第四届河南省程序设计大赛-表达式求值,双栈过!
- NYOJ305 表达式求值(河南省第四届ACM省赛)
- 关于Hibernate5的自定义会话工厂
- Problem D: 从点到面
- BaseActivity集成的功能方法,总有一个是你需要的
- 模仿protobuf的对象序列化系统
- 剑指offer-35.数组中的逆序对
- 表达式求值 第九届河南省赛
- HEVC解码器HM源码阅读(二)解码器中类的介绍
- Map集合
- STL find 函数
- ACM卡常数
- Eclipse 快捷键备忘
- SqlSessionFactoryUtil
- 解决Xcode8之后代码有冲突时自带git工具不出来解决conflict的面板的问题
- Problem E: 判断两个圆之间的关系