时间限制: 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