标题:分机号
X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位。比如:
751,520,321 都满足要求,而,
766,918,201 就不符合要求。
现在请你计算一下,按照这样的规定,一共有多少个可用的3位分机号码?
请直接提交该数字,不要填写任何多余的内容。
package 蓝桥杯;
public class 分机号2 {
/**
* 分机号就是简单的排列组合
*/
private static int[] a = new int[3];
//创建标记数组
private static boolean[] vis = new boolean[10];
private static int count = 0;
/**
* 排列
* @param cur
*/
private static void f(int cur){
if(cur==3){
//操作
count ++;
return;
}else {
for(int i=0;i<10;i++){
if(vis[i]) continue;
if(cur>0&&a[cur-1]<i)continue;
vis[i] = true;
a[cur] = i;
f(cur+1);
//回溯
vis[i] = false;
}
}
}
public static void main(String[] args) {
f(0);
System.out.println(count);
}
}