【问题描述】输入整数N( 1 <= N <= 10 ),生成从1~N所有整数的全排列。
【输入形式】输入整数N。
【输出形式】输出有N!行,每行都是从1~N所有整数的一个全排列,各整数之间以空格分隔。各行上的全排列不重复。输出各行遵循“小数优先”原则, 在各全排列中,较小的数尽量靠前输出。如果将每行上的输出看成一个数字,则所有输出构成升序数列。具体格式见输出样例。
【样例输入1】1
【样例输出1】1
【样例说明1】输入整数N=1,其全排列只有一种。
【样例输入2】3
【样例输出2】
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
【样例说明2】输入整数N=3,要求整数1、2、3的所有全排列, 共有N!=6行。且先输出1开头的所有排列数,再输出2开头的所有排列数,最后输出3开头的所有排列数。在以1开头的所有全排列中同样遵循此原则。
【样例输入3】10
【样例输出3】
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 10 9
1 2 3 4 5 6 7 9 8 10
1 2 3 4 5 6 7 9 10 8
1 2 3 4 5 6 7 10 8 9
1 2 3 4 5 6 7 10 9 8
1 2 3 4 5 6 8 7 9 10
1 2 3 4 5 6 8 7 10 9
1 2 3 4 5 6 8 9 7 10
1 2 3 4 5 6 8 9 10 7
……………………
【样例说明3】输入整数N=10,要求整数1、2、3、……、10的所有全排列。上例显示了输出的前10行。
【运行时限】要求每次运行时间限制在20秒之内。超出该时间则认为程序错误。提示:当N增大时,运行时间将急剧增加。在编程时要注意尽量优化算法,提高运行效率。
【评分标准】该题要求输出若干行整数。。

如果不会做,千万别抄,亲测打表能过,打到5就行

我当时也就打到了6000行。。。

#include <math.h>
#include <stdio.h>
int b, nmin, nmax, type;
int a[12];
int main()
{scanf("%d", &b);nmin = b, nmax = 0;for (int i = b; i > 0; i--)nmin += (b - i) * pow(10, i);for (int i = 0; i < b; i++)nmax += (i + 1) * pow(10, i);for (int i = nmin; i < nmax + 1; i++){int temp = i;for (int j = b - 1; j > -1; j--){a[j] = temp % 10;temp /= 10;}for (int k = 0; k < b - 1; k++){for (int m = k + 1; m < b; m++){if (a[k] == a[m] || a[m] > b || a[k] > b || a[m] == 0){type = 1;break;}}if (type == 1)break;}for (int count = 0; count < b; count++){if (type == 1)break;printf("%d ", a[count]);}if (type == 0){i += 8;printf("\n");}type = 0;}return 0;
}

送你打好的

 if (a == 1){printf("1\n");}if (a == 2){printf("1 2\n2 1");}if (a == 3){printf("1 2 3\n");printf("1 3 2\n");printf("2 1 3\n");printf("2 3 1\n");printf("3 1 2\n");printf("3 2 1");}if (a == 4){printf("1 2 3 4\n");printf("1 2 4 3\n");printf("1 3 2 4\n");printf("1 3 4 2\n");printf("1 4 2 3\n");printf("1 4 3 2\n");printf("2 1 3 4\n");printf("2 1 4 3\n");printf("2 3 1 4\n");printf("2 3 4 1\n");printf("2 4 1 3\n");printf("2 4 3 1\n");printf("3 1 2 4\n");printf("3 1 4 2\n");printf("3 2 1 4\n");printf("3 2 4 1\n");printf("3 4 1 2\n");printf("3 4 2 1\n");printf("4 1 2 3\n");printf("4 1 3 2\n");printf("4 2 1 3\n");printf("4 2 3 1\n");printf("4 3 1 2\n");printf("4 3 2 1");}if (a == 5){printf("1 2 3 4 5\n");printf("1 2 3 5 4\n");printf("1 2 4 3 5\n");printf("1 2 4 5 3\n");printf("1 2 5 3 4\n");printf("1 2 5 4 3\n");printf("1 3 2 4 5\n");printf("1 3 2 5 4\n");printf("1 3 4 2 5\n");printf("1 3 4 5 2\n");printf("1 3 5 2 4\n");printf("1 3 5 4 2\n");printf("1 4 2 3 5\n");printf("1 4 2 5 3\n");printf("1 4 3 2 5\n");printf("1 4 3 5 2\n");printf("1 4 5 2 3\n");printf("1 4 5 3 2\n");printf("1 5 2 3 4\n");printf("1 5 2 4 3\n");printf("1 5 3 2 4\n");printf("1 5 3 4 2\n");printf("1 5 4 2 3\n");printf("1 5 4 3 2\n");printf("2 1 3 4 5\n");printf("2 1 3 5 4\n");printf("2 1 4 3 5\n");printf("2 1 4 5 3\n");printf("2 1 5 3 4\n");printf("2 1 5 4 3\n");printf("2 3 1 4 5\n");printf("2 3 1 5 4\n");printf("2 3 4 1 5\n");printf("2 3 4 5 1\n");printf("2 3 5 1 4\n");printf("2 3 5 4 1\n");printf("2 4 1 3 5\n");printf("2 4 1 5 3\n");printf("2 4 3 1 5\n");printf("2 4 3 5 1\n");printf("2 4 5 1 3\n");printf("2 4 5 3 1\n");printf("2 5 1 3 4\n");printf("2 5 1 4 3\n");printf("2 5 3 1 4\n");printf("2 5 3 4 1\n");printf("2 5 4 1 3\n");printf("2 5 4 3 1\n");printf("3 1 2 4 5\n");printf("3 1 2 5 4\n");printf("3 1 4 2 5\n");printf("3 1 4 5 2\n");printf("3 1 5 2 4\n");printf("3 1 5 4 2\n");printf("3 2 1 4 5\n");printf("3 2 1 5 4\n");printf("3 2 4 1 5\n");printf("3 2 4 5 1\n");printf("3 2 5 1 4\n");printf("3 2 5 4 1\n");printf("3 4 1 2 5\n");printf("3 4 1 5 2\n");printf("3 4 2 1 5\n");printf("3 4 2 5 1\n");printf("3 4 5 1 2\n");printf("3 4 5 2 1\n");printf("3 5 1 2 4\n");printf("3 5 1 4 2\n");printf("3 5 2 1 4\n");printf("3 5 2 4 1\n");printf("3 5 4 1 2\n");printf("3 5 4 2 1\n");printf("4 1 2 3 5\n");printf("4 1 2 5 3\n");printf("4 1 3 2 5\n");printf("4 1 3 5 2\n");printf("4 1 5 2 3\n");printf("4 1 5 3 2\n");printf("4 2 1 3 5\n");printf("4 2 1 5 3\n");printf("4 2 3 1 5\n");printf("4 2 3 5 1\n");printf("4 2 5 1 3\n");printf("4 2 5 3 1\n");printf("4 3 1 2 5\n");printf("4 3 1 5 2\n");printf("4 3 2 1 5\n");printf("4 3 2 5 1\n");printf("4 3 5 1 2\n");printf("4 3 5 2 1\n");printf("4 5 1 2 3\n");printf("4 5 1 3 2\n");printf("4 5 2 1 3\n");printf("4 5 2 3 1\n");printf("4 5 3 1 2\n");printf("4 5 3 2 1\n");printf("5 1 2 3 4\n");printf("5 1 2 4 3\n");printf("5 1 3 2 4\n");printf("5 1 3 4 2\n");printf("5 1 4 2 3\n");printf("5 1 4 3 2\n");printf("5 2 1 3 4\n");printf("5 2 1 4 3\n");printf("5 2 3 1 4\n");printf("5 2 3 4 1\n");printf("5 2 4 1 3\n");printf("5 2 4 3 1\n");printf("5 3 1 2 4\n");printf("5 3 1 4 2\n");printf("5 3 2 1 4\n");printf("5 3 2 4 1\n");printf("5 3 4 1 2\n");printf("5 3 4 2 1\n");printf("5 4 1 2 3\n");printf("5 4 1 3 2\n");printf("5 4 2 1 3\n");printf("5 4 2 3 1\n");printf("5 4 3 1 2\n");printf("5 4 3 2 1");}

BUAA全排列数的生成相关推荐

  1. python集合全排列_python——全排列数的生成方式

    [问题描述]输入整数N( 1 <= N <= 10 ),生成从1~N所有整数的全排列. [输入形式]输入整数N. [输出形式]输出有N!行,每行都是从1~N所有整数的一个全排列,各整数之间 ...

  2. Python02 标准输入输出、数据类型、变量、随记数的生成、turtle模块详解

    1 标准输出 python3利用 print() 来实现标准输出 def print(self, *args, sep=' ', end='\n', file=None): # known speci ...

  3. java冰雹数10_生成的新的数字再执行同样的动作, 循环往复.

    生成的新的数字再执行同样的动作, 循环往复. 声明 可能本文章会有错误, 希望各位读者看到后, 记得回复留言, 提醒我, 以免误人子弟. 本人菜鸡, 还望各位大佬手下留情. 题目: 冰雹数 任意给定一 ...

  4. 4.2寻找水仙花数(阿姆斯特朗数)、完美数,生成斐波那契数列,Craps赌博游戏

    寻找阿姆斯特朗数 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯 ...

  5. itext总页数_itext 生成pdf文件添加页眉页脚

    原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpd ...

  6. php 随机制定数,(php)生成指定个数的随机红包

    $total=20;//红包总金额 $num=10;// 分成10个红包,支持10人随机领取 $min=0.01;//每个人最少能收到0.01元 $redpack = new redpack($tot ...

  7. python用turtle输入数字_Python02 标准输入输出、数据类型、变量、随记数的生成、turtle模块详解...

    1 标准输出 python3利用print() 来实现标准输出 def print(self, *args, sep=' ', end='\n', file=None): #known special ...

  8. HDU 4489 找出n!个全排列数中的“波浪数” dp 思维,全排列

    这题关键还是在于找出dp的转移方程,这题是从第n个数在前n-1个数的位置中入手,然后把"波浪数"分成两派.理解起来不困难,但是要自己想到的话,其中的思维一片也不能断掉,尤其是要找到 ...

  9. NUKED数值表生成

    ​ NUKED是nukeykt实现的一种FM合成波芯片的模拟框架,可用于模拟多款Yamaha FM Synthesizer.NUKED方式将预计算两种常用函数:log(sin)log(sin)log( ...

最新文章

  1. ROS之自定义msg
  2. Thread 同步线程(打印机同步)
  3. 【Redis】详细基础命令 - 学习笔记
  4. Win下执行Swing程序的BAT文件 和 Linux下执行Swing程序的SH文件
  5. 查看Linux版本系统信息方法汇总
  6. oracle @id@,修改oracle用户id
  7. OpenCV图像处理(14)—— 图像转视频
  8. 智慧新泰时空大数据与云平台_智慧城市时空大数据与云平台建设技术大纲即将出台...
  9. flexsim怎么设置传送带方向_Flexsim_编程常用代码
  10. 简易nginx load balance示例
  11. [Python]通过有道词典API获取单词发音MP3
  12. java调用小冰,Java利用微软小冰API测颜值
  13. H5C3第二个完整大项目————天猫国际首页跳转登录页
  14. 录屏鼠标光标圆圈如何实现_录屏鼠标光标圆圈如何实现
  15. 初学makefile
  16. BAT机器学习面试1000题系列(第1~305题
  17. linux下openssl版本问题 /lib64/libcrypto.so.10: version `OPENSSL_1.0.2' not found
  18. STM32F411RE项目开发-1-点亮LD2小灯
  19. 信号检测与估计理论_论文解读 | 利用脑功能连接实现疲劳驾驶检测
  20. AI创企Astound获150万美元A轮融资,利用AI自动化员工服务请求

热门文章

  1. 基本正则表达式与扩展正则表达式
  2. 东方财富:公司可转债今年5月13日停止交易和转股
  3. 培训班出身的同学简历怎么做?面试要注意哪些?来自资深大厂HR的忠告
  4. 2021-10-24 PAT(5)
  5. 今天我们来聊聊面试必考题-离职原因
  6. 女人和男人之间的经典对白!
  7. 33题实战“泰坦尼克号生存预测”全流程
  8. HTML音乐播放器插件编写
  9. visual studio installer打包
  10. MySQL锁解决并发问题详解