一个排列是某些对象的有序组合,例如,3124 就是数字 1,2,3,4 的一种可能排列。 如果所有的排列按照数值...
时间:2022-08-13 15:30:03
字典排列
例如,3124 就是数字 1,2,3,4 可能的排列。
假如所有的排列都按数值或字母顺序排列,我们称之为字典序。
0, 1, 2 012 021 102 120 201 210。
从 0 到 9 第一百万个数字是多少?
答案:2783915460
*思路:*从123456789到9876543210,找出所有符合条件的数字,并出第一百万
import java.util.*; public class Zidiansort {
static boolean isCo(long n){
///判断是否符合0-9不重复 String s=Long.toString(n); int[] num=new int[10]; for(int i=0;i<s.length();i ){
char ch=s.charAt(i); num[ch-'0'] ; if(num[ch-'0']>=2) return false; if(s.length()==9){
//当只有1-9九个数时,数中不能有1 if(num[0]>=1) return false; } } return truespan class="token punctuation">;
}
public static void main(String[] args) {
List<Long> list=new ArrayList<>(); //储存符合的数
int index=0; //记录个数
for(long i=123456789l;i<=9876543210l;i++){
if(isCo(i)){
list.add(i);
index++;
if(index>=1000000)
break;
}
}
System.out.println(list.get(1000000-1));
}
}