蓝桥杯 算法提高 排列数
来源:互联网 发布:linux连不通数据库端口 编辑:程序博客网 时间:2024/05/01 02:00
问题描述
0、1、2三个数字的全排列有六种,按照字母序排列如下:
012、021、102、120、201、210
输入一个数n
求0~9十个数的全排列中的第n个(第1个为0123456789)。
输入格式
一行,包含一个整数n
输出格式
一行,包含一组10个数字的全排列
样例输入
1
样例输出
0123456789
数据规模和约定
0 < n <= 10!
0、1、2三个数字的全排列有六种,按照字母序排列如下:
012、021、102、120、201、210
输入一个数n
求0~9十个数的全排列中的第n个(第1个为0123456789)。
输入格式
一行,包含一个整数n
输出格式
一行,包含一组10个数字的全排列
样例输入
1
样例输出
0123456789
数据规模和约定
0 < n <= 10!
源代码如下:
#include<stdio.h> #include<string.h> long long n,sum; int vis[10]; int nArray[10]; void dfs(int pos) { int i; if(pos==10) { sum++; if(sum==n) { for(i=0; i<10; i++) printf("%d",nArray[i]); printf("\n"); } } for(i=0; i<=9; i++) { if(!vis[i]) { nArray[pos]=i; vis[i]=1; dfs(pos+1); vis[i]=0; } } } int main() { while(~scanf("%lld",&n)) { memset(vis,0,sizeof(vis)); sum=0; dfs(0); } return 0; }运行截图:
蓝桥杯的测试系统结果:
1 0
- 蓝桥杯 算法提高 排列数
- 蓝桥杯-算法提高-排列数
- 蓝桥杯算法提高 排列数
- 蓝桥杯 算法提高 排列数
- 蓝桥杯 算法提高 排列数
- 算法提高 排列数
- 算法提高 排列数
- 算法提高 排列数
- 算法提高 排列数
- 算法提高 排列数
- 算法提高 排列数
- 算法提高 排列数
- 蓝桥杯 ADV-188 算法提高 排列数
- 蓝桥杯--算法提高 排列数 (简单dfs)
- ADV-188 算法提高 排列数
- 排列数(输出0~9的全排列)-蓝桥杯算法提高
- 蓝桥杯 算法提高 逆序排列
- 蓝桥杯算法提高 逆序排列
- JVM学习笔记(三)之内存管理
- java 实现PageRank算法
- 查找算法
- POJ 2492 A Bug is life
- Eclipse java工程中配置opencv
- 蓝桥杯 算法提高 排列数
- RedHat6.5 安装Oracle 12c RAC
- JDK 6 目录结构介绍以及JDK中的工具研究
- B-tree B+tree
- 2599: [IOI2011]Race|树的点分治
- Kruskal算法求MST(最小生成树)
- CMS(新闻发布系统)存放新闻表内容的字段是text,数据过多无法插入,解决办法!
- 信息检索Information Retrieval评价指标
- XML语法以及应用