O2?为什么不开O2过了,开了反而#14 RE了
查看原帖
O2?为什么不开O2过了,开了反而#14 RE了
421517
棠棠棠棠棠এ楼主2021/10/15 10:09
#include<bits/stdc++.h>
#define N 1010
using namespace std;
int s[N],s2[N],memory[N*50],l,r;
void _(int x)
{
	int i=0;
	while(++i<=r)
	{
		if(i==r) s[0]=s[i]%x;
		else s[i+1]+=(s[i]%x)*10;
		s[i]/=x;
	}
	while(s[++l]==0);
	--l;
}
int main()
{
	string a;
	cin>>a;
	r=a.size();
	for(int i=1;i<=r;++i)
		s[i]=s2[i]=a[i-1]-'0';
	int t=9,ans=0;
	while(t>=2)
	{
		_(t);
		if(s[0]==0)
		{
			memory[++ans]=t;
			r-=l;
			for(int i=1;i<=r;++i)
				s2[i]=s[l+i];
		}
		else --t;
		for(int i=1;i<=r;++i)
			s[i]=s2[i];
		l=0;
		if(r==1&&s[1]==1) break;
	}
	if(s[0]) cout<<"There is no such number!";
	else for(int i=ans;i>=1;--i)
			cout<<memory[i];
	return 0;
}

2021/10/15 10:09
加载中...