卡特兰数
推导过程
代码实现
#include<iostream>
#include<cstdio>
using namespace std;
#define int long long
const int mod=1e9+7;
int n;
int power(int a,int k,int p){
int ass=1;
for(;k;k>>=1){
if(k&1)ass=ass*a%p;
a=a*a%p;
}
return ass;
}
signed main(){
scanf("%lld",&n);
int a=2*n,b=n,ass=1;
for(int i=a;i>a-b;i--) ass=ass*i%mod;
for(int i=1;i<=b;i++) ass=ass*power(i,mod-2,mod)%mod;
ass=ass*power(n+1,mod-2,mod)%mod;
printf("%lld",ass);
return 0;
}
就这样吧,再次感谢徐倞舟老师。