给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n 。
示例:
输入: 2
输出: 91
解释: 答案应为除去 11,22,33,44,55,66,77,88,99
外,在 [0,100) 区间内的所有数字。
C
int countNumbersWithUniqueDigits(int n)
{
if(n==0)
{
return 1;
}
int res=10;
int con=9;
for(int i=1;i<n;i++)
{
res+=con*(10-i);
con*=(10-i);
}
return res;
}
python
class Solution:
def countNumbersWithUniqueDigits(self, n):
"""
:type n: int
:rtype: int
"""
if n==0:
return 1
res=10
con=9
for i in range(1,n):
res+=con*(10-i)
con*=(10-i)
return res