用C++实现组合
来源:互联网 发布:linux程序设计第四版 编辑:程序博客网 时间:2024/06/05 02:42
全排列C++里面STL自带函数,但是组合貌似没有,以下代码实现的所有组合,并且打印出来
#include <iostream>#include <vector>using namespace std;vector<int> people;vector<int> combination;vector<vector<int>> result;void pretty_print(const vector<int>& v) { static int count = 0; cout << "combination no " << (++count) << ": [ "; for (int i = 0; i < v.size(); ++i) { cout << v[i] << " "; } cout << "] " << endl;}void go(int offset, int k) { if (k == 0) { result.push_back(combination); return; } //每次递归结束后,要考虑i是不是i <= people.size() - k,如果没有继续i++,如果i大于这个,返回上一次递归 for (int i = offset; i <= people.size() - k; ++i) { combination.push_back(people[i]); go(i+1, k-1); combination.pop_back();//删除combination最后一个元素 }}int main() { int n = 12, k = 4; for (int i = 0; i < n; ++i) { people.push_back(i+1); } go(0, k); return 0;}
1 0
- 砝码组合问题用c语言实现
- 关于用C语言简单实现组合
- 组合的C语言实现
- 组合的C语言实现
- c语言实现组合数
- 用递归实现组合——c语言(转)
- C语言实现 组合数学 生成组合序列
- 用C++实现组合
- C语言实现排列/组合算法
- 递归实现数字的组合(C++)
- c 语言实现全排列和组合
- 字符串排列、组合(C语言实现)
- MySQL-实现C 3 2 组合
- 组合算法实现C语言,非递归
- 组合算法的实现,递归,C语言
- Java实现组合C(m,n)
- 数理逻辑,打印8个命题的所有组合(用c语言实现)
- C语言队列的实现--学习组合设计(一)
- C语言文件操作函数大全
- php 调用 python脚本的方法
- swift初始化一个项目导航栏和标签栏(nav和tabbar)
- 数组打印方法
- Ubuntu 虚拟机下安装VMwareTools 共享文件(虚拟机--安装VMware Tools无结果的情形下的解决方式)
- 用C++实现组合
- 洛谷 P2517 [HAOI2010]订货
- java oop 第五章 快速击键系统
- 如何将高程数据(等高线)转换成xi'an80或者beijing54坐标系
- 代码注释:机器学习实战第12章 使用FP-growth算法来高效发现频繁项集
- 蓝桥杯 密码脱离
- Java——获取网页内容并在本地生成HTML文件
- python urllib初级使用
- [linux]杂记2