lucy2012 @ 2024-05-14 21:08:38
输入4输出3,什么问题捏?(感觉是len的问题
#include<bits/stdc++.h>
using namespace std;
int a[100010],b[100010],n,len;
int main(){
cin>>n;
a[0]=b[0]=1;
for(int i=2;i<=n;i++){
for(int j=0;j<100;j++)
b[j]*=i;
for(int j=0;j<100;j++){
b[j+1]+=b[j]/10;
b[j]%=10;
}
for(int j=0;j<100;j++){
a[j]+=b[j];
a[j+1]+=a[j]/10;
a[j]%=10;
}
}
while(a[len]==0&&len>0)
len--;
for (int i=len;i>=0;i--)
cout<<a[i];
return 0;
}
by _zqh_ @ 2024-05-14 21:28:56
宁len的初值应该是105吧……
by _zqh_ @ 2024-05-14 21:29:14
@lucy2012 要不然就只输出最后一位
by lucy2012 @ 2024-05-14 21:31:49
@zqh 额,一时疏忽脑抽,谢谢啦!!!