难度:中等
给你一个整数
n
,统计并返回各位数字都不同的数字x
的个数,其中0 <= x < 10n
。示例 1:
输入:n = 2 输出:91 解释:答案应为除去11、22、33、44、55、66、77、88、99外,在 0 ≤ x < 100 范围内的所有数字。示例 2:
输入:n = 0 输出:1提示:
0 <= n <= 8
代码:
class Solution {
public int countNumbersWithUniqueDigits(int n) {
//各位不同,首位不为零
//首位有9种选择,第二位9种,第三位8种...
int res = 1;
int temp = 9;
for (int i = 1; i <= n; i++) {
res += temp;
temp *= (10 - i);
}
return res;
}
}