求一个编程题目的解法
球在自己脚下,有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)); } }