我們知道,可以
//return C(n,m)
int choose(int n, int m){
int res = 1;
for (int i = 1; i <= m; ++i) {
res *= n - i;
res /= i;
}
return res;
}
那麼爲什麼這麼做一定正確呢?注意到如下事實:
- 連續
k 個數中一定有且僅有一個可以整除k
那麼上述求解過程就顯然了
我們知道,可以
//return C(n,m)
int choose(int n, int m){
int res = 1;
for (int i = 1; i <= m; ++i) {
res *= n - i;
res /= i;
}
return res;
}
那麼爲什麼這麼做一定正確呢?注意到如下事實:
那麼上述求解過程就顯然了