再谈组合

#include <iostream>
int num[20];
using namespace std;
int sum = 0;
void init(int nn, int mm)
{
    int i;
    if (mm == 0)//当mm==0时,num[1]~num[5]中存储的就是枚举的这五个数
    {
        sum++;
        for (int i = 1; i <= 5; i++)
            cout << num[i] << " ";
        cout << endl;
        return;
    }
    for (int i = nn; i >= mm; i--)//枚举组合数
    {
        num[mm] = i;
        //cout <<nn - 1 << " " << mm - 1 << endl;
        init(i - 1, mm - 1);
    }
}
int main()
{
    init(12, 5);//枚举组合数,在12个数中选5个数的组合
    cout<<sum<<endl;
    return 0;
}

1-12中选7个数的组合,目前代码还看不懂,先码着

原文地址:https://www.cnblogs.com/seamusopen/p/8664271.html

时间: 2024-11-29 06:42:10

再谈组合的相关文章

再谈组合模式

http://acm.hdu.edu.cn/showproblem.php?pid=1507 大致题意:在一个n*m的格子上,黑色的地方不可用,问在白色格子上最多可放多少1*2的矩阵. 思路:建图,每个白色格子与它临近的上下左右的白色格子建边,求最大匹配,答案为最大匹配/2,因为是双向图.最后输出匹配边时,当找到一组匹配边记得将该边标记,以防重复计算. #include <stdio.h> #include <algorithm> #include <set> #inc

站在新语言平台上再谈&quot;组合&quot;与&quot;继承&quot;

长久以来,OO编程思想的一个重要信条是:多用组合,少用继承,这被广为接受和认可.Scala引入Trait(特质)之后,这一点"似乎"受到了冲击,你可以看到,在很多Scala代码里出现了通过继承多个Trait为一个Class混入(追加)新功能的案例,而其中有不少案例是过去我们在传统OO语言(例如Java)中不会或不建议的做法,因为看上去那确实是在滥用继承. 举个简单的例子,日志功能是非常普遍的需求,传统的Java程序里是以"组合"的方式为一个类添加这一功能的,也就是在

C++ Primer 学习笔记_73_面向对象编程 --再谈文本查询示例

面向对象编程 --再谈文本查询示例 引言: 扩展第10.6节的文本查询应用程序,使我们的系统可以支持更复杂的查询. 为了说明问题,将用下面的简单小说来运行查询: Alice Emma has long flowing red hair. Her Daddy says when the wind blows through her hair, it looks almost alive, like a fiery bird in flight. A beautiful fiery bird, he

C++ Primer 学习笔记_73_面向对象编程 -再谈文本查询示范

面向对象编程 --再谈文本查询示例 引言: 扩展第10.6节的文本查询应用程序,使我们的系统可以支持更复杂的查询. 为了说明问题,将用下面的简单小说来运行查询: Alice Emma has long flowing red hair. Her Daddy says when the wind blows through her hair, it looks almost alive, like a fiery bird in flight. A beautiful fiery bird, he

C++ Primer 学习笔记_42_STL实践与分析(16)–再谈迭代器【上】

STL实践与分析 --再谈迭代器[上] 引言: 另外三种迭代器类型: 1)插入迭代器:这类迭代器与容器绑定在一起,实现在容器中插入元素的功能. 2)iostream迭代器:这类迭代器可以与输入与输出流绑定在一起,用于迭代遍历所关联的IO流. 3)反向迭代器:这类迭代器实现向后遍历,而不是向前遍历,所有的容器都定义了自己的reverse_iterator类型,由rbegin和rend成员函数返回. 上述迭代器都在iterator头文件中定义. 一.插入迭代器 前面曾经提到的back_inserte

C++ Primer 学习笔记_74_面向对象编程 --再谈文本查询示例[续/习题]

面向对象编程 --再谈文本查询示例[续/习题] //P522 习题15.41 //1 in TextQuery.h #ifndef TEXTQUERY_H_INCLUDED #define TEXTQUERY_H_INCLUDED #include <iostream> #include <fstream> #include <sstream> #include <vector> #include <set> #include <map&g

再谈MySQL全库备份

再谈MySQL全库备份 简介 Part1:写在最前 在很早之前,我写过一个MySQL生产库全库备份脚本,今天有同事问我是不是要再加一个-R参数来备份存储过程,理由的话是由于mysqldump --help中 关于存储过程的默认备份是false. routines                          FALSE MySQL生产库全库备份脚本 http://suifu.blog.51cto.com/9167728/1758022 实战 Part1:写在最前 我备份一般就三个参数 --s

Android 再谈handler

今天在做http网络事件的响应网络接收处理一般不能放在主线程中使用,目前也只会使用AsyncTask进行处理!之前虽然写过handler处理的一些文章但是发现全不会了!无奈~ 关于handler某位兄弟已经整理的很透彻了!现在引用下原话如下: Handler监听者框架:子线程是事件源,主线程是监听者.Handler作为子线程的监听器出现:主线程中生成Handler的子类,并重写handleMessage(Message msg) 方法,用来对子线程响应.子线程调用Hanlder的sendMess

再谈ORACLE CPROCD进程

罗列一下有关oprocd的知识点 oprocd是oracle在rac中引入用来fencing io的 在unix系统下,如果我们没有采用oracle之外的第三方集群软件,才会存在oprocd进程 在linux系统下,只有在10.2.0.4版本后,才会具有oprocd进程 在window下,不会存在oprocd 进程,但是会存在一个oraFenceService服务,用来实现相同的功能,该服务采用的技术是基于windows的,与oprocd不同 oprocd进程可以运行在两者模式下:fatal和n