猫和老鼠玩象棋,玩了M+N局,猫赢了M局 老鼠赢了N局 N>M,而且在整个过程中,猫的得分从来没有超过过老鼠,问共有多少种可能的比赛得分过程
C语言代码:
#include <stdio.h>
int count(int Win,int Fail,int win_now,int fail_now)
{
if(Win<Fail)
{
return 0;
}
else if(win_now<fail_now)
{
return 0;
}
else if(Win == win_now && Fail == fail_now)
{
return 1;
}
int res = 0;
if(fail_now<Fail)
{
res += count(Win,Fail,win_now,fail_now+1);
}
if(win_now < Win)
{
res += count(Win,Fail,win_now+1,fail_now);
}
return res;
}
int main()
{
int M = 0;//老鼠
int N = 0;//猫
printf("Input cat M:");
scanf("%d",&M);
printf("Input mouse N:");
scanf("%d",&N);
printf("%d/n",count(M,N,0,0));
}