7-1 输出全排列 (20 分)(全排列+递归+图解)Come Baby
一:题目
请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。
输入格式:
输入给出正整数n(<10)。
输出格式:
输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a
输入样例:
3
输出样例:
123
132
213
231
312
321
二:思路
这道题的考查的是全排列,我将代码中的核心递归代码用图示进行展示(这里我省略了当i= 时候的流程,思路相似)
三:上代码
#include<bits/stdc++.h>
using namespace std;int N;
vector<string>v;void swap(int arr[],int i,int j){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;
}string printarr(int arr[]){//将int型 转换成string类型实现int型数字的拼接 stringstream st; for(int i = 0; i < N; i++){st << arr[i] ;}string str = st.str();return str;
}void perm(int A[],int p,int q){if(p == q){string str = printarr(A);v.push_back(str);}else{for(int i = p; i <= q; i++){swap(A,p,i);perm(A,p+1,q);swap(A,p,i);} }
} int main(){cin >> N;int arr[10];for(int i = 0; i < N; i++){arr[i] = i + 1;}perm(arr,0,N-1); sort(v.begin(),v.end());for(int i = 0; i < v.size(); i++){cout << v[i] << endl;} }
![在这里插入图片描述](https://img-blog.csdnimg.cn/c5c34b0d854d4b52bd71bc2dd09bc90b.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA57Sv5LqG5Zuw5LqG5pWy5Luj56CBIOaPkOelnuaKl-eWsuWKsw==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
7-1 输出全排列 (20 分)(全排列+递归+图解)Come Baby相关推荐
- PTA—输出全排列 (20分) 递归回溯思想
PTA-输出全排列 (20分) 递归回溯思想 题目要求: 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出 ...
- 7-177 输出全排列 (20 分)
7-177 输出全排列 (20 分) 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出正整数n(<1 ...
- C语言程序练习-L1-023 输出GPLT (20分)
L1-023 输出GPLT (20分) 给定一个长度不超过10000的.仅由英文字母构成的字符串.请将字符重新调整顺序,按GPLTGPLT-这样的顺序输出,并忽略其它字符.当然,四种字符(不区分大小写 ...
- C++学习之路 | PTA乙级—— 1043 输出PATest (20 分)(精简)
1043 输出PATest (20 分) 给定一个长度不超过 10 4 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest- 这样的顺序输出,并忽略其它字符.当然 ...
- 【PAT - 甲级1005】Spell It Right (20分) (递归输出,水题)
题干: Given a non-negative integer N, your task is to compute the sum of all the digits of N, and outp ...
- PAT (Basic Level) Practice (中文)1043 输出PATest (20 分)
给定一个长度不超过 1 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符已经输 ...
- 天梯赛 L1-023 输出GPLT (20 分)
首先统计个数,再一轮轮输出 #include <iostream> using namespace std;int main() {ios::sync_with_stdio(false); ...
- 1043 输出PATest (20分)_23行代码满分
立志用更少代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 给定一个长度不超过 10^4 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATes ...
- 7-6 逆序输出整数 (20分)
编写程序将整数逆序输出.如输入为9876输出为6789 Main函数中读入n个整数,输出n个整数的逆序数 输入格式: 整数个数n n个整数 输出格式: n个整数的逆序数 输入样例: 在这里给出一组输入 ...
最新文章
- 笔记本暗屏维修多少钱_电视机维修|维修电视机多少钱?电视机黑屏
- 未解决-hive之drop 表分区失败
- webclientt和httpwebrequest
- python : HTML+CSS (定时器轮寻)
- 原生希望原生JavaScript开篇
- Eclipse编写Java程序
- 【软件质量】软件可维护性
- 2021-08-04 Mysql自连接
- Python——基础习题(300题)
- 推荐一款好用的telnet工具
- 【Spring配置文件】Spring定时器的使用及配置
- qca9535 tftp32 刷机_【U-Boot】U-Boot 刷机方法大全
- 17届智能车竞赛技术报告 | 常熟理工学院-昆承湖二队
- java 微博爬虫 cookie_微博爬虫——自动获取访客Cookie - GXUZF.COM - 林澈思的茶
- 更多丰富内容,请转移至博主的个人博客——SeaDream乄造梦
- JS中将中文数字转化为阿拉伯数字
- OpenCV 图像清晰度评价(相机自动对焦)
- jquery变量var的使用
- 大数据必学Java基础(一百一十四):Requet域监听器
- Linux top命令的了解以及使用