您的位置:首页 > 其它

Gym 100801E Easy Arithmetic (思维题)

2016-08-08 14:05 344 查看
题目:传送门。(需要下载PDF)

题意:给定一个长度不超过1000的字符串表达式,向该表达式中加入'+'或'-',使得表达式的值最大,输出该表达式。

题解:比如300-456就改成300-4+56,遇到二位数以上的减数的情况就变成-首位+剩下的,这样会使得表达式值最大。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
string c;
int main()
{
freopen("easy.in","r",stdin);
freopen("easy.out","w",stdout);
cin>>c;
int len=c.length();
bool flag=0;
for(int i=0;i<len;i++)
{
if(c[i]=='-'||c[i]=='+') flag=0;
if(flag) putchar('+');
if(c[i]!='0') flag=0;
if(c[i-1]=='-'&&i>=1) flag=1;
putchar(c[i]);
}
puts("");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: