题目描述:

HD-ACM算法专攻系列(5)——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;
}

  

 

相关文章:

  • 2021-12-25
  • 2021-06-12
  • 2021-09-10
  • 2021-10-25
  • 2021-06-17
  • 2021-12-28
  • 2021-12-28
  • 2021-07-03
猜你喜欢
  • 2021-11-15
  • 2021-12-30
  • 2022-01-17
  • 2021-06-20
  • 2022-01-27
  • 2021-10-29
  • 2021-07-01
相关资源
相似解决方案