📅  最后修改于: 2023-12-03 15:10:57.295000             🧑  作者: Mango
模数10^9+7(1000000007)是程序员在算法中常用的一个模数,该模数用于取模运算,特别适用于计算组合数、排列数等需要使用阶乘和逆元的算法。
以下是使用模数10^9+7计算阶乘和逆元的示例代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#define ll long long
#define N 2300005
#define mod 1000000007
using namespace std;
ll fac[N], f[N];
void init(){
fac[0] = f[1] = 1;
for (ll i = 1; i < N; i++){
fac[i] = (fac[i - 1] * i) % mod; // 计算阶乘
}
for (ll i = 2; i < N; i++){
f[i] = ((mod - mod / i) * f[mod % i]) % mod; // 计算逆元
}
}
int main(){
init();
ll t;
cin >> t;
while (t--){
ll n;
cin >> n;
ll ans = (fac[2 * n] * f[n + 1] % mod * f[n] % mod) % mod; // 计算组合数
cout << ans << endl;
}
return 0;
}
模数10^9+7(1000000007)是算法中常用的模数,用于解决取模问题和计算组合数等问题。对程序员而言,掌握模数10^9+7的应用可以提高算法处理的效率,是算法竞赛中必备的技能之一。