蓝桥杯省模拟赛 阶乘求值

问题描述

给定 n,求 n! 除以 1000000007的余数。

其中 n! 表示 n 的阶乘,值为从 1 连乘到 n 的积,即 n!=1×2×3×…×n。

输入格式

输入一行包含一个整数 n。

输出格式

输出一行,包含一个整数,表示答案。

样例输入

3

样例输出

6

样例输入

7

样例输出

5040

#include
using namespace std;

long long sum=1;
const int N = 1000000007;
int n;

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	cin>>n;
	
	for(int i=1; i<=n; ++i)
	{		
		sum = (sum*i) % N; 
		//不能是sum*i%N 
		//因为i%N会先计算,再与 sum 相乘,而sum可能已经很大,导致溢出 
	}
	cout<

你可能感兴趣的:(蓝桥杯)