# Count of N-digit numbers with all distinct digits

• Difficulty Level : Hard
• Last Updated : 10 Mar, 2022

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

Input: N = 1
Output:
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 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`

## Javascript

 ``

Output:

`648`

Time Complexity: O(n)

Auxiliary Space: O(n)

My Personal Notes arrow_drop_up