用c语言代码实现,递归算法找出 5 个自然数中取 3 个数的组合。且大的数字在前面
时间: 2023-04-03 14:04:10 浏览: 232
c代码-递归阶乘啊
以下是 C 知道的回答:
可以使用递归算法来找出 5 个自然数中取 3 个数的组合。代码如下:
```c
#include <stdio.h>
void combination(int arr[], int n, int r, int index, int data[], int i) {
if (index == r) {
for (int j = 0; j < r; j++) {
printf("%d ", data[j]);
}
printf("\n");
return;
}
if (i >= n) {
return;
}
data[index] = arr[i];
combination(arr, n, r, index+1, data, i+1);
combination(arr, n, r, index, data, i+1);
}
int main() {
int arr[] = {5, 4, 3, 2, 1};
int n = sizeof(arr) / sizeof(arr[0]);
int r = 3;
int data[r];
combination(arr, n, r, 0, data, 0);
return 0;
}
```
输出结果为:
```
5 4 3
5 4 2
5 4 1
5 3 2
5 3 1
5 2 1
4 3 2
4 3 1
4 2 1
3 2 1
```
希望能够帮到你!
阅读全文