一、题目描述
给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。
示例:
输入: 2
输出: 91
解释: 答案应为除去11,22,33,44,55,66,77,88,99
外,在 [0,100) 区间内的所有数字。
二、题目解析
排列组合。第一位有9种,第二位有9种,….第10位有1种,大于10位肯定有重复,返回0
三、代码实现
class Solution {
public:
int countNumbersWithUniqueDigits(int n) {
if (!n)return ;
if (n > )return ;
int res = , tmp = ;
for (int i = ; i < n; ++i) {
tmp *= ( - i);
res += tmp;
}
return res;
}
};