1317:【例5.2】组合的输出

简介: 1317:【例5.2】组合的输出

1317:【例5.2】组合的输出

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r≤n),我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。

现要求你用递归的方法输出所有组合。

例如n=5,r=3,所有组合为:

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

【输入】

一行两个自然数n、r(1<n<21,1≤r≤n)。

【输出】

所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,每个元素占三个字符的位置,所有的组合也按字典顺序。

【输入样例】

5 3

【输出样例】

 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

【来源】

No

1. #include<iostream>
2. #include<cstdio>
3. #include<cmath>
4. using namespace std;
5. int n,r;
6. int a[101]={0},b[101]={0};
7. void search(int m)
8. {
9.  for(int i=1;i<=n;i++){
10.     if((b[i]==0)&&(i>a[m-1])){
11.       b[i]=1;
12.       a[m]=i;
13.       if(m==r){
14.         for(int j=1;j<=r;j++) printf("%3d",a[j]);
15.         printf("\n");
16.       }
17.       search(m+1);
18.       b[i]=0;
19.     }
20.   }
21. }
22. int main()
23. {
24.   cin>>n>>r;
25.   search(1);
26.   return 0;
27. }

 

相关文章
|
8月前
|
人工智能 负载均衡 数据可视化
阿里云出手了,DeepSeek服务器拒绝繁忙,免费部署DeepSeek模型671B满血版
阿里云推出免费部署DeepSeek模型671B满血版服务,通过百炼大模型平台,用户无需编码,最快5分钟、最低0元即可完成部署。平台提供100万免费Token,支持DeepSeek-R1和DeepSeek-V3等多款模型调用,有效解决服务器繁忙问题。新手零基础也能轻松上手,享受高效稳定的API调用和自动弹性扩展功能。教程涵盖开通服务、获取API-KEY及配置Chatbox客户端等步骤,详细指引助您快速实现DeepSeek自由。
511 18
|
机器学习/深度学习 人工智能 自然语言处理
|
12月前
|
JavaScript 前端开发
使用通义灵码的@workspace和@terminal功能,快速熟悉并开发一个在线商城项目
使用通义灵码的@workspace和@terminal功能,快速熟悉并开发一个在线商城项目
|
前端开发 Devops Shell
前端破圈用Docker开发项目🏴‍☠️
前端破圈用Docker开发项目🏴‍☠️
246 0
|
存储 人工智能 C语言
C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
441 4
|
人工智能 算法 C++
一篇带你速通前缀和算法(C/C++)
一篇带你速通前缀和算法(C/C++)
|
开发框架 Java 开发者
Spring框架的最新功能与应用案例解析
Spring框架的最新功能与应用案例解析
|
消息中间件 安全 中间件
中间件中与中间件集成
【6月更文挑战第12天】
305 5
|
算法 搜索推荐 Java
二叉树的基本概念、常见操作以及如何使用Java代码
二叉树的基本概念、常见操作以及如何使用Java代码
227 1
|
存储 算法 C++
链表基础知识(二、双向链表头插、尾插、头删、尾删、查找、删除、插入)
链表基础知识(二、双向链表头插、尾插、头删、尾删、查找、删除、插入)