代码:
#include
<bits/stdc++.h>
using namespace std ;
int dp ( int x , int y )
{
if (y == 0 )
return 1 ;
else if (x == 1 )
return 1 ;
else if (y ==x )
return 1 ;
else return ( dp (x -1 ,y -1 )+ dp (x -1 ,y ));
}
int main ()
{
int i ,j ,k ,m ,n ;
cin >>k ;
while (k --)
{
cin >>n >>m ;
cout << dp (n ,m )<<endl ;
}
}
using namespace std ;
int dp ( int x , int y )
{
if (y == 0 )
return 1 ;
else if (x == 1 )
return 1 ;
else if (y ==x )
return 1 ;
else return ( dp (x -1 ,y -1 )+ dp (x -1 ,y ));
}
int main ()
{
int i ,j ,k ,m ,n ;
cin >>k ;
while (k --)
{
cin >>n >>m ;
cout << dp (n ,m )<<endl ;
}
}
分析:
注意根据提示找出递归结束条件,当y==0或者x==1或y==x的时候返回1;其他时候返回递归值即可;