用递归算法找出 5 个自然数中取 3 个数的组合
时间: 2023-04-05 18:02:55 浏览: 193
python 利用递归方法求5!(示例)
5星 · 资源好评率100%
可以回答这个问题。递归算法可以通过以下方式实现:
1. 定义一个递归函数,输入参数为当前已选的数字列表、当前数字的位置、还需要选择的数字个数。
2. 在函数内部,如果还需要选择的数字个数为 0,就输出当前已选的数字列表。
3. 否则,从当前数字位置开始循环遍历剩余的数字,每次选择一个数字加入已选列表,然后递归调用函数,继续选择下一个数字。
4. 在递归调用结束后,需要将已选数字列表中最后一个数字移除,以便选择其他数字。
具体实现可以参考以下代码:
#include <stdio.h>
void combination(int nums[], int n, int selected[], int pos, int k) {
if (k == 0) {
printf("{%d, %d, %d}\n", selected[0], selected[1], selected[2]);
return;
}
for (int i = pos; i <= n - k; i++) {
selected[3 - k] = nums[i];
combination(nums, n, selected, i + 1, k - 1);
}
}
int main() {
int nums[] = {1, 2, 3, 4, 5};
int selected[3];
combination(nums, 5, selected, 0, 3);
return 0;
}
阅读全文