- 算法说明
递推公式如下
C(n,k)=C(n-1,k-1)+C(n-1,k),n>k>0
C(n,0)=C(n,n)=1 - 源代码
#include <cstdio>
#include <cstring>
#define maxn 100 + 1
#define mincc(a, b) (a) > (b) ? (b) : (a)
int c[maxn][maxn];
int n, k;
int main() {
scanf("%d%d", &n, &k);
for(int i = 0; i <= n; i++) {
int temp = mincc(i, k);
for(int j = 0; j <= temp; j++) {
if(j == 0 || j == i) c[i][j] = 1;
else c[i][j] = c[i-1][j-1] + c[i-1][j];
}
}
printf("%d", c[n][k]);
return 0;
}
- 运行结果