找出n个自然数中r个数的组合C语言
时间: 2024-09-13 20:06:11 浏览: 67
求n个数中r个数的全部组合问题
在C语言中,找出n个自然数中r个数的组合,可以通过递归或者循环的方法实现。这里我将给出一个使用循环的示例代码来计算组合数C(n, r),也就是从n个不同元素中取出r个元素的组合方式的总数。组合数可以使用以下公式计算:
C(n, r) = n! / [r! * (n-r)!]
其中n!表示n的阶乘,即n! = n * (n-1) * ... * 1。
下面是使用循环方法计算组合数的C语言代码示例:
```c
#include <stdio.h>
// 函数用于计算阶乘
long long factorial(int num) {
long long fact = 1;
for(int i = 1; i <= num; ++i) {
fact *= i;
}
return fact;
}
// 函数用于计算组合数C(n, r)
long long combination(int n, int r) {
return factorial(n) / (factorial(r) * factorial(n - r));
}
int main() {
int n, r;
printf("请输入n和r的值:");
scanf("%d %d", &n, &r);
if(r > n) {
printf("输入的r不能大于n。\n");
return 1;
}
long long result = combination(n, r);
printf("C(%d, %d) = %lld\n", n, r, result);
return 0;
}
```
在上面的代码中,`factorial`函数用于计算一个数的阶乘,`combination`函数用于计算组合数。然后在`main`函数中,程序会提示用户输入n和r的值,并计算输出组合数。
阅读全文