「题解」:表达式密码

问题 A: 表达式密码

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

猜你喜欢

转载自www.cnblogs.com/xingmi-weiyouni/p/11749089.html