代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
string s;
long long a[N],b[N],c[N],m[10]={0,2,3,5,7,11};
int main()
{
cin>>s;
int len=s.size(),flg=0,l_a=1,l_b=1;
for(long long i=len;i>=0;i--)
{
if(s[i]=='+')
{
flg=1;
continue;
}
if(isdigit(s[i])==1)
{
if(isdigit(s[i-1])==1)
{
if(flg==0)
{
a[l_a]=(s[i]-'0')*10+(s[i-1]-'0');
l_a++;
}
else
{
b[l_b]=(s[i]-'0')*10+(s[i-1]-'0');
l_b++;
}
i--;
continue;
}
if(flg==0)
{
a[l_a]=s[i]-'0';
l_a++;
}
else
{
b[l_b]=s[i]-'0';
l_b++;
}
}
}
l_a--,l_b--;
int len2=max(l_a,l_b),k=1;
for(long long i=1;i<=len2;i++)
{
c[i]+=a[i]+b[i];
if(c[i]>=m[k])
{
c[i+1]+=c[i]/m[k];
c[i]%=m[k];
}
k++;
}
len=0;
while(1)
{
if(c[len2+1]!=0)
{
len2++;
}
else
{
break;
}
}
for(long long i=len2;i>=1;i--)
{
cout<<c[i];
if(i!=1)
{
cout<<',';
}
}
return 0;
}
得了 80 分,最后一个点就是A不过去,求助!