有大佬知道为什么爆零吗(样例没过)
查看原帖
有大佬知道为什么爆零吗(样例没过)
507243
你猜你猜楼主2021/10/30 12:27
#include<bits/stdc++.h>
using namespace std;
string s;
int a[16]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
void dfs(int n)
{
	if(n<=2)
	{
		s+=n+48;
		return;		
	}
	for(int i=14;i>=0;i--)
	{
		if(n>=a[i])
		{
			s+=50;
			s+="(";
			dfs(i);
			s+=")";
			n-=a[i];
		}
	}
}
int n;
int main()
{
	cin>>n;
	dfs(n);
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='2'&&s[i+1]=='('&&s[i+2]=='1'&&s[i+3]==')')
		{
			cout<<2;
			i+=4;
			goto sb;
		}
		if(s[i-1]==')'&&s[i+1]=='(')cout<<"+";
		cout<<s[i];
		sb:;
	}
}
2021/10/30 12:27
加载中...