统计各位数字都不同的数字个数
难度:中等
当 n=0 时,0≤x<1,x 只有 1 种选择,即 0。
当 n=1 时,0≤x<10,x 有 10 种选择,即 10。
当 n=2 时,第一位的选择有 9 种,即 1∼9,第二位的选择也有 9 种,即 0∼9 中除去第一位的选择。
以此类推…
代码如下:
public int countNumbersWithUniqueDigits(int n) {
if(n==0) return 1;
int res = 10;
int cur = 9;
for (int i = 0; i < n-1; i++) {
cur *= 9-i;
res += cur;
}
return res;
}
执行结果:成功