下了测试点发现 n=48时
输出是
12678163798554051767172643373255731925167694226950680420940313
我的输出是
-5-4-90-5-8-8-7-1-10-30-1-3-5-9-7-6-9-6-1-5-7-4-9-7-6-3-1-5-4-7213-46
根本不知道为什么会输出负号
求大佬帮调
//2023/3/31
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+10;
int num,ans;
int jie[10000000];
int he[10000000];
int main()
{
int n;
int len=1,len1=1;
int z=0,s=0;
jie[0]=1;
cin>>n;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=i;j++)
{
for (int k=0;k<len;k++)
{
jie[k]*=j;
jie[k]+=z;
z=jie[k]/10;
if(jie[k]>=10)
{
jie[k]%=10;
}
}
if(z>0)
{
jie[len]+=z;
len++;
z=0;
}
}
len1=len;
for (int j=0;j<len1;j++)
{
he[j]+=jie[j];
he[j]+=s;
s=he[j]/10;
he[j]%=10;
}
if(s>0)
{
he[len1]+=s;
len1++;
s=0;
}
/*for (int i=len1-1;i>=0;i--)
{
cout<<he[i];
}
cout<<endl;*/
for (int j=0;j<len;j++)
{
jie[j]=0;
}
jie[0]=1;
len=1;
}
for (int i=len1-1;i>=0;i--)
{
cout<<he[i];
}
return 0;
}