# Count of N-digit numbers with all distinct digits

Given an integer **N**, the task is to find the count of **N-digit** numbers with all distinct digits.

**Examples:**

Input:N = 1

Output:9

1, 2, 3, 4, 5, 6, 7, 8 and 9 are the 1-digit numbers

with all distinct digits.

Input:N = 3

Output:648

**Approach:** If **N > 10** i.e. there will be atleast one digit which will be repeating hence for such cases the answer will be **0** else for the values of **N = 1, 2, 3, …, 9**, a series will be formed as **9, 81, 648, 4536, 27216, 136080, 544320, …** whose **N ^{th}** term will be

**9 * 9! / (10 – N)!**.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to return the factorial of n ` `int` `factorial(` `int` `n) ` `{ ` ` ` `if` `(n == 0) ` ` ` `return` `1; ` ` ` `return` `n * factorial(n - 1); ` `} ` ` ` `// Function to return the count ` `// of n-digit numbers with ` `// all distinct digits ` `int` `countNum(` `int` `n) ` `{ ` ` ` `if` `(n > 10) ` ` ` `return` `0; ` ` ` `return` `(9 * factorial(9) ` ` ` `/ factorial(10 - n)); ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `n = 3; ` ` ` ` ` `cout << countNum(n); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the approach ` `class` `GFG ` `{ ` ` ` ` ` `// Function to return the factorial of n ` ` ` `static` `int` `factorial(` `int` `n) ` ` ` `{ ` ` ` `if` `(n == ` `0` `) ` ` ` `return` `1` `; ` ` ` `return` `n * factorial(n - ` `1` `); ` ` ` `} ` ` ` ` ` `// Function to return the count ` ` ` `// of n-digit numbers with ` ` ` `// all distinct digits ` ` ` `static` `int` `countNum(` `int` `n) ` ` ` `{ ` ` ` `if` `(n > ` `10` `) ` ` ` `return` `0` `; ` ` ` `return` `(` `9` `* factorial(` `9` `) / ` ` ` `factorial(` `10` `- n)); ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main(String []args) ` ` ` `{ ` ` ` `int` `n = ` `3` `; ` ` ` `System.out.println(countNum(n)); ` ` ` `} ` `} ` ` ` `// This code is contributed by Srathore ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation of the approach ` ` ` `# Function to return the factorial of n ` `def` `factorial(n) : ` ` ` ` ` `if` `(n ` `=` `=` `0` `) : ` ` ` `return` `1` `; ` ` ` `return` `n ` `*` `factorial(n ` `-` `1` `); ` ` ` `# Function to return the count ` `# of n-digit numbers with ` `# all distinct digits ` `def` `countNum(n) : ` ` ` `if` `(n > ` `10` `) : ` ` ` `return` `0` `; ` ` ` ` ` `return` `(` `9` `*` `factorial(` `9` `) ` `/` `/` ` ` `factorial(` `10` `-` `n)); ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` ` ` `n ` `=` `3` `; ` ` ` ` ` `print` `(countNum(n)); ` ` ` `# This code is contributed by AnkitRai01 ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the approach ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// Function to return the factorial of n ` ` ` `static` `int` `factorial(` `int` `n) ` ` ` `{ ` ` ` `if` `(n == 0) ` ` ` `return` `1; ` ` ` `return` `n * factorial(n - 1); ` ` ` `} ` ` ` ` ` `// Function to return the count ` ` ` `// of n-digit numbers with ` ` ` `// all distinct digits ` ` ` `static` `int` `countNum(` `int` `n) ` ` ` `{ ` ` ` `if` `(n > 10) ` ` ` `return` `0; ` ` ` `return` `(9 * factorial(9) / ` ` ` `factorial(10 - n)); ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main(String []args) ` ` ` `{ ` ` ` `int` `n = 3; ` ` ` `Console.WriteLine(countNum(n)); ` ` ` `} ` `} ` ` ` `// This code is contributed by Princi Singh ` |

*chevron_right*

*filter_none*

**Output:**

648

**Time Complexity:** O(n)

## Recommended Posts:

- Numbers having Unique (or Distinct) digits
- Count of numbers between range having only non-zero digits whose sum of digits is N and number is divisible by M
- Count numbers in given range such that sum of even digits is greater than sum of odd digits
- Count numbers whose maximum sum of distinct digit-sum is less than or equals M
- Count of distinct remainders when N is divided by all the numbers from the range [1, N]
- Count numbers with same first and last digits
- Count of numbers from range [L, R] whose sum of digits is Y
- Count of numbers from range [L, R] that end with any of the given digits
- Count of all even numbers in the range [L, R] whose sum of digits is divisible by 3
- Count of Numbers in Range where the number does not contain more than K non zero digits
- Count numbers in range L-R that are divisible by all of its non-zero digits
- Count Numbers with N digits which consists of odd number of 0's
- Count of Octal numbers upto N digits
- Count Numbers with N digits which consists of even number of 0’s
- Count of n digit numbers whose sum of digits equals to given sum

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.