杨辉三角的性质满足组合数原理,当时空复杂度在平方之内可以接受时可以选择这样的解法。
int c[11][11];
void init()
{
for(int i = 1 ; i <= 10 ; ++ i)
{
c[i][0] = c[i][i] = 1;
for(int j = 1 ; j < i ; ++ j)
{
c[i][j] = c[i-1][j] + c[i-1][j-1];
}
}
}
int get_c(int n , int m)
{
return c[n][m];
}
int main()
{
int n,m;
init();
while( cin >> n >> m )
{
cout << get_c(n,m) << endl;
}
}
若题意有让组合数取模,在制造组合数的核心语句下面多加一条取模语句即可。
对于组合数的另外求法还有几种利用数论原理和求逆元的方法,因为还没有理解,就只先带出参考链接。
https://blog.csdn.net/u010582475/article/details/47707739