一個簡單的動態規劃,配合二項式係數和楊輝三角。
#include<iostream>
#include<vector>
using namespace std;
int Cnk(int n, int k)
{
vector<vector<int>>c;
vector<int>c2;
c2.push_back(1);
c.push_back(c2);
c2.push_back(1);
c.push_back(c2);
for(int i=2;i<n+1;i++)
{
vector<int>c1;
c1.push_back(1);
for(int j=1;j<i;++j)
{
int x=c[i-1][j-1]+c[i-1][j];
c1.push_back(x);
}
c1.push_back(1);
c.push_back(c1);
}
return c[n][k];
}
int main(void)
{
int n,k;
cin>>n>>k;
cout<<Cnk(n,k)<<endl;;
return -1;
}