2019年第十届蓝桥杯省赛C++B组【第九题:后缀表达式】


 写出这道题的前提是知道什么后缀表达式,如果这都不知道那基本上就完蛋了。

什么是后缀表达式

后缀表达式,又称逆波兰式。将运算符写在操作数之后,比如现在有1+2,那么12+就是它的后缀表达式。

然而这道题似乎不需要知道什么是后缀表达式,应该是考虑负号将负数变成正数的问题。

定义len为整数的个数,sub为负数的个数,n为加号的数目,m为减号的数目。

1.如果没有减号,那么输出所有数之和
2.全是正数,最大值为(最大的len-1个正数之和)-(最小的正数)。
  分类讨论:因为1.判断过没有减号,所以2.处必然有减号。
 (1)减号为奇数个.显而易见
 (2)减号为偶数个.例如5+4+3-(1-2)=5+4+3+2-1,即不管有几个减号都可以变成1个
3.负数数量大于0。
  分类讨论:
 (1)全是负数.等同于2.但是要取绝对值
 (2)不全是负数.例如5 4 -3 -2 -1,n=2,m=2;则5+4-((-3)+(-2))-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值