题目:1006: 组合的输出
Description
排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r<=n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。
    现要求你用递归的方法输出所有组合。
    例如n=5,r=3,所有组合为:
    l 2 3   l 2 4   1 2 5   l 3 4   l 3 5   1 4 5   2 3 4   2 3 5   2 4 5   3 4 5
Input
包含多组测试数据,每组测试数据占一行,包含两个自然数n、r(1<n<21,0<=r<=n)。
Output
所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列。
Sample Input
5 3
Sample Output
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5

思路:dfs的思想和排列一样,有需要可以去看我排列的那篇文章;但在递归的处理上,因为组合和排列其性质的不同,所以其判断有一定的区别;可以通过代码来观察;

代码

#include<stdio.h>void dfs(int ,int );
int n,t;
int queue_number[25];
int main()
{while(scanf("%d%d",&n,&t)!=EOF){//for(int i=1;i<=n;i++)dfs(0,t);}return 0;
}void dfs(int x,int s)
{if(s==0){for(int i=0;i<t;++i){printf("%d",queue_number[i]);if(i!=t-1) printf(" ");else printf("\n");}return;}for(int i=x+1;i<=n;i++){queue_number[t-s]=i;//即这里是与排列不同的,这个是因为组合的序列输出dfs(i,s-1);        //直接从小到大即可;}
}

1006: 组合的输出(dfs的一种用法)(与排列类似)相关推荐

  1. linux 输入、输出重定向的概念和用法详解(Day01)

    介绍重定向之前先来介绍几个重要的概念:(笔记不易---- 转载请注明出处) 1.linux 的标准输入与输出  linux标准输入设备指的是键盘,标准输出设备指的是显示器,标准错误输出指的是显示器. ...

  2. 信息学奥赛一本通(1317:【例5.2】组合的输出)

    1317:[例5.2]组合的输出 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 21154     通过数: 10292 [题目描述] 排列与组合是常用的数学方法 ...

  3. java:P1157 组合的输出

    洛谷题目:P1157 组合的输出 题目如下: 我的代码: import java.io.*; /* 思路:dfs思想,其中改进下即可,这样就能够得到不重复的组合. 递归代码提醒:t代表当前函数找第几个 ...

  4. php代码金字塔几种,php输出金字塔的2种实现方法

    本文实例讲述了php输出金字塔的2种实现方法.分享给大家供大家参考.具体分析如下: 下面给大家总结了两种实现金字塔打印的方法,一种是利用了自定义函数,另一种是利用了for循环了,其实两都用到了只是前者 ...

  5. 【例5.2】组合的输出

    [例5.2]组合的输出 链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1317 时间限制: 1000 ms         内存限制: 65536 ...

  6. 深度搜索 java_java实现的深度搜索与广度搜索算法BFS,DFS以及几种最短路径算法...

    java实现的深度搜索与广度搜索算法BFS,DFS以及几种最短路径算法 public class City { String name; int id; static int idCounter = ...

  7. 写一个26字母和0-9数字 不同长度组合的输出

    写一个26字母和0-9数字 不同长度组合的输出,输出全部的时间不能超过2个小时.需要用多线程录 直接上代码 Password类 package com.more.util; import java.u ...

  8. 如何使用if嵌套结构;实现用户输入个人的身高和体重,计算出国际肥胖指标BMI值,并判断输出您属于 哪种体型

    如何使用if嵌套结构:实现用户输入个人的身高和体重,计算出国际肥胖指标BMI值,并判断输出您属于 哪种体型 一.从键盘上获取用户输入的身高和体重的数值 二.计算出国际肥胖指标BMI值 三.根据计算出的 ...

  9. python倒序输出字符串的6种方法

    python倒序输出字符串的6种方法 直接切片法 循环逆序法 列表翻转法 列表增删法(使用原列表操作) 列表增删法(建立空列表操作) 对称交换法 总结 直接切片法 1.通过改变读入字符串的步长为-1完 ...

最新文章

  1. TinyML设备设计的Arm内核
  2. Ansible源码解析 Inventory组概念
  3. 1.7 Java创建对象详解(显式创建和隐含创建)
  4. 解决编译apache出现的问题:configure: error: APR not found . Please read the documentation
  5. 【渝粤题库】国家开放大学2021春2503学前儿童健康教育题目
  6. java holdslock_一种检测Java并发程序代码分支路径lock是否遗漏的方法
  7. angular4获得焦点事件_Angular 4 文本框自动获取焦点二
  8. 微信小程序---实现输入手机验证码功能
  9. java8 Map新增方法的使用
  10. 中国五大顶级域名9月第一周新增3.2万 美国净减7.6万个
  11. OpenGL基础51:泛光
  12. DEJA_VU3D - Cesium功能集 之 007-军事标绘系列一:简单箭头
  13. WPS服务器维护,wps卸载云服务器
  14. uIP TCP/IP协议栈在51系列单片机上的应用
  15. jsp+sql智能道路交通信息管理系统的设计与实现(论文+系统+开题报告+答辩PPT+外文翻译)
  16. html中文网app,app.vue什么作用?
  17. 离群值 excel_如何(以及为什么)在Excel中使用离群值函数
  18. Android简易计算器的制作
  19. Spring高手之路——深入理解与实现IOC依赖查找与依赖注入
  20. 采用粒子群优化算法实现投资组合优化【Matlab实现】

热门文章

  1. 唯美动态个人404错误页面html源码
  2. 猫狗动物声音模拟器微信小程序源码
  3. 品牌设计工作室html5模板
  4. Linux 查看磁盘空间实现代码介绍
  5. 登录代码,程序不是作文
  6. PHP: 在类(class)中加载动态函数, 变量函数或半变量函数 variable function/method
  7. HTML5: 利用SVG动画动态绘制文字轮廓边框线条
  8. bxslider 纵向滑动 vertical image thumbnail slider
  9. MediaWiki/安装
  10. 一些上流的CSS3图片样式