D的小L---全排列

简介:

D的小L

时间限制:4000 ms  |  内存限制:65535 KB
难度:2
描述
      一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给匡匡出了个题目想难倒匡匡(小L很D吧),有一个数n(0<n<10),写出1到n的全排列,这时匡匡有点囧了,,,聪明的你能帮匡匡解围吗?
输入
第一行输入一个数N(0<N<10),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个整数x(0<x<10)
输出
按特定顺序输出所有组合。
特定顺序:每一个组合中的值从小到大排列,组合之间按字典序排列。
样例输入
2
2
3
样例输出
12
21
123
132
213
231
312
321
查看代码---运行号:253085----结果:Accepted

运行时间:2012-10-07 20:48:25  |  运行人:huangyibiao
view sourceprint?
01.#include <iostream>
02. 
03.usingnamespacestd;
04. 
05.voidPrintElems(int*elem, int size)
06.{
07.for(inti = 1; i <= size; i++)
08.cout << elem[i];
09.cout << endl;
10.}
11. 
12.voidSwap(int&first, int &second)
13.{
14.inttmp = first;
15.first = second;
16.second = tmp;
17.}
18. 
19.voidReverse(int*elem, int leftIndex,int size)
20.{
21.for(inti = leftIndex, j = size; j >= i; i++, j--)
22.{
23.Swap(elem[i], elem[j]);
24.}
25. 
26.}
27. 
28.boolNotFinished(int*elem, int size)
29.{
30. 
31.//从右往左寻找第一个相邻元素中左边元素小于右边的元素的位置
32.intleftIndex = -1;
33.for(inti = size; i >= 2; i--)//0号不用
34.{
35.if(elem[i-1] < elem[i])
36.{
37.leftIndex = i-1;
38.break;
39.}
40.}//*******************************************************
41.if(leftIndex == -1)//找不到了,说明已经全部排完
42.{
43.returnfalse;
44.}
45. 
46.//从右往左寻找右边的元素中大于前面已经找到的元素的最小元素的位置
47.intrightIndex = -1;
48.for(inti = size; i >= leftIndex; i--)
49.{
50.if(elem[i] > elem[leftIndex])
51.{
52.rightIndex = i;
53.break;
54.}
55.}
56.//交换这两个元素
57.Swap(elem[leftIndex], elem[rightIndex]);
58. 
59.Reverse(elem, leftIndex+1, size);
60. 
61.returntrue;
62.}
63. 
64.intmain()
65.{
66.intsample;
67.cin >> sample;
68. 
69.while(sample--)
70.{
71.intx;
72.cin >> x;
73.int*elem =new int[x+1];
74. 
75.for(inti = 0; i <= x; i++)
76.elem[i] = i;
77.while(true)
78.{
79.PrintElems(elem, x);
80.if(!NotFinished(elem, x))
81.break;
82.}
83.                  delete []elem;
84.}
85.return0;
86.}


目录
相关文章
|
前端开发 Java 关系型数据库
【SpringBoot】微服务学习笔记七:微服务中异步调用数据提交数据库的问题
【SpringBoot】微服务学习笔记七:微服务中异步调用数据提交数据库的问题
876 0
【SpringBoot】微服务学习笔记七:微服务中异步调用数据提交数据库的问题
|
11月前
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
317 36
|
11月前
|
消息中间件 运维 Cloud Native
UU 跑腿云原生化,突围同城配送赛道
UU跑腿自2015年上线以来,已覆盖全国200余座城市,拥有超过850万“跑男”,成为同城即时生活服务行业的头部企业。面对激烈竞争,UU跑腿通过创新获客方式和数字化业务平台建设,实现了波浪式用户增长。为应对快速增长的业务需求,UU跑腿积极推进云原生化,优化IT基础设施,实现了80%的微服务无缝迁移、1分钟内弹性伸缩、80%的运维成本降低及80%的变更稳定性提升,显著提高了系统的稳定性和效率,成为行业内的黑马。
546 16
|
11月前
|
存储 SQL 关系型数据库
云端问道20期方案教学-体验RDS通用云盘核心能力
本文整理自杨浩磊(木信)老师在云端问道20期方案教学中的分享,主要介绍了RDS通用云盘的核心能力。内容涵盖四个方面:1) 初识RDS通用云盘,介绍其多级存储架构和工作原理;2) 核心能力,包括IO加速、IO突发和数据归档;3) 方案及应用案例,展示如何通过RDS通用云盘提升性能并降低成本;4) 线上活动与权益,提供免费试用和超值礼包等优惠信息。RDS通用云盘通过缓存层、数据层和冷存层的结合,实现了高性能与低成本的平衡,帮助企业有效应对数据库运维挑战。
152 0
云端问道20期方案教学-体验RDS通用云盘核心能力
|
弹性计算 运维 搜索推荐
幻兽帕鲁内存溢出怎么办,一键设置定时重启,修改虚拟内存,定时清理,轻松解决卡顿!再也不怕爆内存了!
幻兽帕鲁的内存溢出问题,玩久了确实会变卡。这里给出三个解决思路:第一种方法是定时进行内存清理(装个软件就可以),网上也有很多教程,我会把下载地址放在文章后面,大家可以去下载。第二种方法是调大虚拟内存,这个可以一键设置。第三种方法是定时重启游戏服务,这个也可以一键设置。这三种方法我下面都会教给大家,可以有效解决内存增长过快的问题,避免游戏卡顿甚至崩溃。
1075 3
|
Linux 数据安全/隐私保护 Windows
pscp 将Linux服务器上的文件同步到Windows服务器上
【6月更文挑战第28天】pscp 将Linux服务器上的文件同步到Windows服务器上
668 0
|
开发框架 负载均衡 前端开发
.NET 6 之 YARP 初体验
YARP —— 又一个反向代理欢迎来到 YARP 的文档!YARP 是一个库,用于帮助创建高性能、可生产且高度可定制的反向代理服务器。现在它仍然在预览中,但是请通过 GitHub 仓库 提供您的反馈。什么是 YARP ? 我们发现微软的一些内部团队要么为他们的服务构建一个反向代理,要么为构建一个代理询问 API 的技术...
974 0
.NET 6 之 YARP 初体验
|
C语言 Perl
西门子S7-1200有哪几种编程方法?什么是线性化编程、模块化编程、结构化编程?
今天我们来说一说西门子S7-1200有哪几种编程方法,给大家简单介绍一下什么是线性化编程、模块化编程和结构化编程。
西门子S7-1200有哪几种编程方法?什么是线性化编程、模块化编程、结构化编程?
|
人工智能 Serverless 异构计算
【有奖体验】AI 都这么厉害了,可以看图生成文字描述!
一个可以智能识别图片,AI 智能文案描写,以后再也不用怕文案写不出来了!
|
SQL Java 关系型数据库
eclipse连接MySQL
eclipse连接MySQL以及JDBC
437 0