生成r子集的c++语言代码
时间: 2024-03-29 17:34:13 浏览: 98
以下是生成r子集的C++语言代码:
```
#include <iostream>
#include <vector>
using namespace std;
void generateSubset(vector<int>& nums, vector<int>& subset, int r, int index) {
if(subset.size() == r) {
// 输出生成的子集
for(int i = 0; i < subset.size(); i++) {
cout << subset[i] << " ";
}
cout << endl;
return;
}
for(int i = index; i < nums.size(); i++) {
subset.push_back(nums[i]);
generateSubset(nums, subset, r, i + 1);
subset.pop_back();
}
}
int main() {
vector<int> nums = {1, 2, 3, 4};
vector<int> subset;
int r = 2;
generateSubset(nums, subset, r, 0);
return 0;
}
```
该代码使用递归的方式生成r个元素的子集。其中,nums表示原始集合,subset表示生成的子集,r表示子集中元素个数,index表示遍历起始位置。在递归过程中,每次将当前位置的元素加入子集中,并递归到下一个位置;当子集中元素个数达到r时,输出该子集。最终输出所有生成的子集。
阅读全文