N求大数阶乘!

#include<cstdio>
#include<iostream>
int s1[100005];//不知道为什么数组定义在外面运行就会非常慢,定义在main里面就运行的快多了。 
using namespace std;
int main()
{

	int a;
	//scanf("%d",&a);
	cin>>a;
	int temp;
	int digit=1;
	int num=0;
	
	s1[0]=1;
	for(int i=2;i<=a;i++)
	{
		num=0;
		for(int j=0;j<digit;j++)
		{
			temp=s1[j]*i+num;
			s1[j]=temp%10;
			num=temp/10;
		}		
		
		while(num)
		{
			s1[digit]=num%10;
			num/=10;
			digit++;
		}
	}
	for(int i=digit-1;i>=0;i--)
	{
		printf("%d",s1[i]);
	}
} 

猜你喜欢

转载自blog.csdn.net/guozuofeng/article/details/79977701