# 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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 Nth term will be 9 * 9! / (10 – N)!.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach ` `#include ` `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; ` `} `

## 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 `

## 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 `

## 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 `

Output:

```648
```

Time Complexity: O(n)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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.