public static long c (long n,long m){
long res=1;
for(long i=n;i>=n-m+1;i--){//(n-m+1)到n的阶乘
res=res*i%mod;
}
for(long i=1;i<=m;i++){//1到m的阶乘
res=res*qmi(i,mod-2)%mod;
}
return res;
}
例题
package pailiezhuhe;
import java.util.*;
public class chapter1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
long n=scan.nextLong();
long m=scan.nextLong();
long res=c(n+m-2,n-1,(long)1e9+7);
System.out.print(res);
}
public static long qim(long a,long b,long mod) {
long res=1;
while(b>0) {
if((b&1)==1) {
res=res*a%mod;
}
b>>=1;
a=a*a%mod;
}
return res;
}//快速幂
public static long c(long n,long m,long mod) {
long res=1;
for(long i=n;i>= n-m+1;i++) {
res=res*i%mod;
}
for(int i=1;i<=m;i++) {
res=res*qim(i,mod-2,mod)%mod;
}
return res;
}//求组合数的方法,n个数里面选出m个数 ,逆元并对他们取模,
}