0,1,2,3,4,5,6,7,8,9的第100万个字典排列是什么?
来源:互联网 发布:淘宝网包头尖头皮拖鞋 编辑:程序博客网 时间:2024/05/01 11:44
排列是一个物体的有序安排。例如3124是1,2,3,4的一种排列。如果所有的排列按照数值或者字母序排序,我们称其为一个字典序。0,1,2的字典排列有:
012 021 102 120 201 210
0, 1, 2, 3, 4, 5, 6, 7, 8,9的第100万个字典排列是什么?
public class Test {public static void main(String[] args) {int MAX = 1000000 - 1;int[] tempn = new int[9];int[] num = new int[10];int[] answer = new int[10];int NUM = 1;int n;num[0] = 0;for (int i = 1; i < 10; i++) {NUM *= i;tempn[i - 1] = NUM;num[i] = i;}for (int i = 8; i >= 0; i--) {n = MAX / tempn[i];int k = 0;int m = 8 - i;while (n > 0) {n--;k++;while (num[k] == -1)k++;}answer[m] = num[k];num[k] = -1;MAX %= tempn[i];}for (int i = 0; i < 10; i++) {if (num[i] != -1) {answer[9] = num[i];break;}}for (int a : answer) {System.out.print(a);}}}
算法引自http://blog.sina.com.cn/s/blog_9f26be1d01012n0n.html ,本人只是改用JAVA代码实现而已,学习了.
- 0,1,2,3,4,5,6,7,8,9的第100万个字典排列是什么?
- 欧拉工程第24题 0,1,2,3,4,5,6,7,8,9的第100万个字典排列是什么
- Java 欧拉工程 第二十四篇【0,1,2,3,4,5,6,7,8,9的第100万个字典排列是什么】
- Algorithm::FastPermute模块的应用:欧拉计划第24题:0, 1, 2, 3, 4, 5, 6, 7, 8,9的第100万个字典排列是什么
- 给出集合{0,1,2,3,4,5,6,7,8,9}的全排列从小到大的第1000000个的值
- (接上)第6题1,2,3,4,5共5个数按字典序排列
- 模拟之全排列的第k个字典序
- 第k个字典序全排列
- hdu1027(n个数的按字典序排列的第m个序列)
- 康拓展开+康拓逆展开(构造按字典序排序的第n个排列)
- poj 1037 DP 求波浪序列中按字典序排列的第k个序列
- 第k个字典序全排列(kth permutation)
- hdu1027 给出n,m,求n个数的按字典序排列的第m个序列
- LeetCode Permutation Sequence(求排列中的第k个排列是什么)
- 集合[1,2,3,...,n]总共包含n! 独特排列。 给出n和k 返回第k个排列。
- 有1,2,3,...,n,n<=9,这n个数全排列,从小到大排好,计算第k个数是什么
- 暴力搜索求0--9全排列的第n个
- poj1833 排列 求字典序的下k个序列
- Qt: 多线程 就是这么简单
- 如何和用户一起写汇报材料
- 斐波那契数列(java/c++)
- 八款开源 Android 游戏引擎 (巨好的资源)
- 如何在VC中调用EXCEL公式
- 0,1,2,3,4,5,6,7,8,9的第100万个字典排列是什么?
- 输入格式InputFormat
- 知识框架图 存档
- 修改命令提示符
- goto,void,extern,sizeof分析
- 对象的初始化
- 美国专利检索
- 初学visual c++ 接手别人写的工程,要增加或修改功能,一路走来
- Problem 1000 A+B Problem