记录编号 35625 评测结果 AAAAAAAAAA
题目名称 分裂 最终得分 100
用户昵称 Gravatarkaaala 是否通过 通过
代码语言 C++ 运行时间 0.697 s
提交时间 2012-02-27 09:18:40 内存使用 0.30 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>

using namespace std;

int N,f[10010],len;

void solve(int a,int b)
{
	for(int i=1;i<=len;i++)
		f[i]*=a;
	for(int i=1;i<=len;i++)
	{
		f[i+1]+=f[i]/10;
		f[i]%=10;
	}
	while(f[len+1]!=0)
	{
		len++;
		f[len+1]=f[len]/10;
		f[len]%=10;
	}
	for(int i=len;i;i--)
	{
		if(i!=1)
			f[i-1]+=(f[i]%b)*10;
		f[i]=f[i]/b;
	}
	while(len>1&&f[len]==0)
		len--;
}

int main()
{
	freopen("mushroom.in","r",stdin);
	freopen("mushroom.out","w",stdout);
	scanf("%d",&N);
	int a=N-(N/2)+1,b=1;
	f[1]=1;
	len=1;
	for(int i=1;i<=N/2;i++)
	{
		solve(a,b);
		a++;
		b++;
	}
	for(int i=len;i;i--)
		printf("%d",f[i]);
	printf("\n");
	return 0;
}