問題描述
給定?n,求?n!?除以?1000000007的余數。
其中 n!?表示?n?的階乘,值為從?1?連乘到?n?的積,即?n!=1×2×3×…×n。
輸入格式
輸入一行包含一個整數?n。
輸出格式
輸出一行,包含一個整數,表示答案。
樣例輸入
3
樣例輸出
6
樣例輸入
7
樣例輸出
5040
#include<iostream>
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<<sum % N;return 0;
}