题目
类型:数学
解题思路
对于n位数,第一位有除0以外的9个数可选。
对于剩余数位,每次选前面没被选的,可选数从9依次递减。
当n大于0时,需要再叠加上第一位选0,相当于n-1位数的答案数。
代码
class Solution {
public int countNumbersWithUniqueDigits(int n) {
if(n == 0)
return 1;
int ans = 9;
for(int i = 9; i > 10 - n; i--)
ans *= i;
return ans + countNumbersWithUniqueDigits(n - 1);
}
}