时间限制: 1 Sec 内存限制: 512 MB
题面谢绝公开。
sb题,没办法分类。
直接跑,把一个减法拆成一个减法一个加法。
由于不能出现前导零,所以如果出现0了继续拆。
代码:
#include<bits/stdc++.h>
#define rint register int
using namespace std;
int len,tot;
char str[100005],ans[200006];
bool zf;
int main()
{
scanf("%s",str+1);
len=strlen(str+1),zf=1;
for(rint i=1;i<=len;++i)
{
// ans[++tot]=str[i];
if(str[i]==‘-‘){zf=0;ans[++tot]=str[i];continue;}
if(str[i]==‘+‘){zf=1;ans[++tot]=str[i];continue;}
if(zf==0&&str[i-1]!=‘-‘)
{
ans[++tot]=‘+‘;
if(str[i]!=‘0‘)zf=1;
}
ans[++tot]=str[i];
}
for(rint i=1;i<=tot;++i)
cout<<ans[i];
puts("");return 0;
}
原文:https://www.cnblogs.com/xingmi-weiyouni/p/11749089.html