# Leetcode Count Numbers with Unique Digits problem solution

In this Leetcode Count Numbers with Unique Digits problem solution you have given an integer n, return the count of all numbers with unique digits, x, where 0 <= x < 10n.

## Problem solution in Python.

```class Solution:
def countNumbersWithUniqueDigits(self, n):
if n == 0:
return 1

if n == 1:
return 10

if n == 2:
return 91

i = 3
total = 91
k = 9*9

while i <= n:
total += k * (11 - i)
k *= (11 - i)
i += 1

if i == 11:
break

```

## Problem solution in Java.

```class Solution {
public int countNumbersWithUniqueDigits(int n) {
if(n==0){
return 1;
}
int sum = 0;
for(int k=1;k<=n;k++){
sum += count(k);
}
return sum+1;
}

public int count(int n){
int product = 9;
for(int i=0;i<n-1;i++){
product = product * (9-i);
}
return product;
}
}
```

## Problem solution in C++.

```int countNumbersWithUniqueDigits(int n) {
int s = 0;
int p = 1;
for (int i=1; i<=min(10, n); i++) {
s += p;
p *= 10 - i;
}
return s * 9 + 1;
}
```

## Problem solution in C.

```int fac(int a, int b){
int result = 1;
while(a > b){
result *= a;
a--;
}
return result;
}
int countNumbersWithUniqueDigits(int n) {
if(n == 1 || n == 0) return pow(10, n);
if(n > 10) return countNumbersWithUniqueDigits(10);

int result = 0;
result = countNumbersWithUniqueDigits(n - 1) + fac(9, 9-n) + fac(9, 9 - n + 1) * (n - 1);
return result;
}
```