995
查看原帖
995
965646
孟令然2013楼主2024/8/9 15:03
#include<iostream>
#include<string.h>
using namespace std;
long long n,a[100005],ans[100005],tmp,tmp2;
int main()
{
	cin>>n;
	for(int i=n;i>=1;i--)
	{
		memset(a,0,sizeof(a));
		a[1]=1;
		tmp=1;
		for(int j=1;j<=i;j++)
		{
			tmp2=0;
			for(int k=tmp;k>=1;k--)
			{
				a[k]*=j;
				if(a[k]>=10)
				{
					a[k+1]+=a[k]/10;
					a[k]%=10;
					tmp2++;
				}
			}
			tmp+=tmp2;
		}
		for(int j=1;j<=tmp;j++)
		{
			ans[j]+=a[j];
			if(ans[j]>=10)
			{
				ans[j+1]+=ans[j]/10;
				ans[j]%=10;
			}
		}
	}
	int flag=0;
	for(int i=n;i>=1;i--)
	{
		if(ans[i]!=0&&!flag)
		{
			flag=1;
		}
		if(flag)
		{
			cout<<ans[i];
		}
	}
	return 0;
}

75分...

2024/8/9 15:03
加载中...