25分求调
查看原帖
25分求调
1070367
JX_Oier114514楼主2024/10/11 23:01

1,3,4点没过,但是1~50的结果用计算器算了,输出没有问题,但不知道为什么过不了测试点,球球大佬修改

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1000;
long long n,sum[MAXN],a[MAXN];
bool f=0;
int main()
{
	cin>>n;
	a[1]=sum[1]=1;
	if(n==0||n==1)
	{
		cout<<"1";
		return 0;
	}
	for(int i=2;i<=n;i++)
	{
		for(int j=1;j<=MAXN;j++)
			a[j]*=i;
		for(int j=1;j<=MAXN;j++)
		{
			a[j+1]+=a[j]/10;
			a[j]%=10;
		}
		for(int j=1;j<=MAXN;j++)
		{
			sum[j]+=a[j];
			sum[j+1]+=sum[j]/10;
			sum[j]%=10;
			
		}
		
	}
	for(int i=MAXN;i>=1;i--)
	{
		if(sum[i]!=0)
			f=1;
		if(f)
			cout<<sum[i];
		
	}
	return 0;
 } 

```
2024/10/11 23:01
加载中...