HD-ACM算法专攻系列——N!

Posted forcheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HD-ACM算法专攻系列——N!相关的知识,希望对你有一定的参考价值。

题目描述:

源码:

#include"iostream"
using namespace std;

int main()
{
	int n, digit, carry, tmp;
	int a[40000];
	while(cin>>n)
	{
		if(n <= 1)
		{
			cout<<1<<endl;
		}
		else
		{
			a[0] = 1;
			digit = 1;
			for(int i = 2; i <= n; i++)
			{
				carry = 0;
				for(int j = 0; j < digit; j++)
				{
					tmp = a[j] * i + carry;
					a[j] = tmp % 10;
					carry = tmp / 10;
				}
				while(carry > 0)
				{
					a[digit] = carry % 10;
					digit++;
					carry /= 10;
				}
				
			}
			for(int j = digit - 1; j >= 0; j--)
			{
					cout<<a[j];
			}
			cout<<endl;
		}
	}
    return 0;
}

  

 

以上是关于HD-ACM算法专攻系列——N!的主要内容,如果未能解决你的问题,请参考以下文章

HD-ACM算法专攻系列——排序

HD-ACM算法专攻系列(19)——七夕节

HD-ACM算法专攻系列(20)——七夕节

HD-ACM算法专攻系列(19)——Leftmost Digit

HD-ACM算法专攻系列——Big Number

HD-ACM算法专攻系列(14)——find your present