求一个编程题目的解法
球在自己脚下,有n位队友可以进行球传球配合。和队友通过k次传球后,球还在自己脚下,有多少种不同的传球方式。输入正整数n和m,分别表示小明身边的队友数和传球次数。输出不同的传球方式数(由于该数字可能很大,请输出总方式数对10^9+7的余数即可)
程序代码:int fun(int n, int m)
{
if (m <= 1)
{
return 0;
}
if (n == 1)
{
if (m&1)
{
return 0;
}
else
{
return 1;
}
}
if (m == 2)
{
return n;
}
if (m&1)
{
return n*(fun(n, m-1)-1);
}
else
{
return n*(fun(n, m-1)+1);
}
}
void main()
{
int n, m;
while (1)
{
scanf("%d%d", &n, &m);
printf("%d\n", fun(n, m));
}
}