从n个数里选k(k<n)个数(不考虑组合顺序),问有几种组合方法:
假设有ABCD四个数从中选两个,可以考虑A是否被选。若A被选,就在剩下三个里选1个;若A为被选,则在剩下3个里选两个。
#include<stdio.h> long long pick(int n,int k) { if(k==n||k==0) return 1; else return pick(n-1,k-1)+pick(n,k-2); } int main() { int n,k; scanf("%d%d",&n,&k); printf("%d",pick(n,k)); }