请编写递归函数,求组合数。 函数原型 double Cmb(int x, int y); 说明:x 和 y 为非负整数,且 x≥y,函数值为组合数 Cxy。 裁判程序 #include <stdio.h> double Cmb(int x, int y); int main() { int m, n; scanf("%d%d", &m, &n); printf("%.10g\n", Cmb(m, n)); return 0; }
时间: 2024-03-20 17:42:38 浏览: 90
编求x的y次方的递归函数.cbp
好的,以下是递归函数求组合数的代码:
```c
#include <stdio.h>
double Cmb(int x, int y);
int main() {
int m, n;
scanf("%d%d", &m, &n);
printf("%.10g\n", Cmb(m, n));
return 0;
}
double Cmb(int x, int y) {
if (y == 0 || x == y) {
return 1;
} else {
return Cmb(x-1, y-1) + Cmb(x-1, y);
}
}
```
函数 `Cmb` 接收两个非负整数 `x` 和 `y`,并返回组合数 `Cxy`。当 `y` 为 0 或 `x` 等于 `y` 时,直接返回 1,否则递归计算 `C(x-1, y-1)` 和 `C(x-1, y)` 的和。
阅读全文