一般递归的式子特别简洁,这道题不用考虑怎样计算Cnr的值直接把给的式子转换成递归形式即可,出口条件为k=0 || k=n (总之一句话,递归不要想的太复杂,控制好条件即可)。这道简单递归题,当初我想Cnk的表达式式什么,怎样计算,递归里面套递归,搞得一塔糊涂(那会也没有搞清楚什么是递归,糊里糊涂的用)。
#include<stdio.h>
int dg(int kk,int nn)
{
if(kk==0 || kk==nn) return 1;
else return dg(kk,nn-1)+dg(kk-1,nn-1);
}
int main(void)
{
int k,n;
scanf("%d %d",&k,&n);
printf("%d",dg(k,n));
return 0;
}