C/C++ 组合的输出
2023-09-11 14:22:06 时间
题目
问题 B: 组合的输出
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
题目描述
排列与组合是常用的数学方法,其中组合就是从 n 个元素中抽出 r 个元素(不分顺序且 r<=n),我们
可以简单地将 n 个元素理解为自然数 1,2,…,n,从中任取 r 个数。
现要求你用递归的方法输出所有组合。
输入
一行两个自然数 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
提示
按%3d的格式输出
代码
#include<iostream>
using namespace std;
int num[21];
void arrange(int step,int r,int n) {
if (step == r) {
for (int i = 0; i < r; i++) {
printf("%3d",num[i]);
}
cout << endl;
return;
}
for (int i = 0; i < n; i++) {
if (step == 0) {
num[step] = i + 1;
arrange(step+1,r,n);
}
else if(i+1>num[step-1]) {
num[step] = i + 1;
arrange(step+1,r,n);
}
}
}
int main() {
int n, r;
cin >> n >> r;
arrange(0,r,n);
}
相关文章
- 图文详解如何搭建Windows的Android C++开发环境
- 【C/C++学院】0826-文件重定向/键盘输入流/屏幕输出流/字符串输入输出/文件读写简单操作/字符文件读写二进制与文本差别/get与getline挖掘数据/二进制与文本差别/随机位置/多线程初级
- 【C/C++学院】0804-C语言和设计模式(继承、封装、多态)
- 【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题/函数增强
- 牛客网 C++ 输入、输出常用格式
- c++ boost 汉字和模式串混用的例子
- C++ 重载操作符<<实现cout定位输出以及设置颜色:cout<<Goto(x,y)<<setC(color)<<123<<cr;
- Open3D(C++)点云处理算法汇总(C++长期更新版)
- C++字符串相互转换
- C/C++中printf和C++中cout的输出格式
- VS中c++文件调用c 函数 ,fatal error C1853 预编译头文件来自编译器的早期版本号,或者预编译头为 C++ 而在 C 中使用它(或相反)
- C++学习心得与c语言到c++衔接技巧
- c++ vector 初始化_C++--vector()的用法
- c++ string compare
- C++ cout格式化输出(输出格式)完全攻略
- C++格式化输出
- C++标准输出流对象
- C++重载>>和<<输入和输出运算符)
- 在C++里一个类成员函数多少行代码才是最好呢?
- C++ 堆和栈 内存
- 给出相对排名,输出总排名 C++版
- 时间类-输入和输出(C++版本)
- 【C++要笑着学】深浅拷贝 | string 模拟实现 | 传统写法与现代写法