# Count of N digit numbers possible which satisfy the given conditions

• Last Updated : 08 Mar, 2022

Given an integer N, the Task is to find the total number of N digit numbers possible such that:

1. All the digits of the numbers are from the range [0, N].
2. There are no leading 0s.
3. All the digits in a number are distinct.

Examples:

Input: N = 2
Output:
10, 12, 20 and 21 are the only possible 2 digit
numbers which satisfy the given conditions.
Input: N = 5
Output: 600

Approach: Given N number of digit and the first place can be filled in N ways [0 cannot be taken as the first digit and the allowed digits are from the range [1, N]
Remaining (N – 1) places can be filled in N! ways
So, total count of number possible will be N * N!.
Take an example for better understanding. Say, N = 8

First place can be filled with any digit from [1, 8] and the remaining 7 places can be filled in 8! ways i.e 8 * 7 * 6 * 5 * 4 * 3 * 2.
So, total ways = 8 * 8! = 8 * 8 * 7 * 6 * 5 * 4 * 3 * 2 = 322560
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` `fact(``int` `n)` `{` `    ``int` `res = 1;` `    ``for` `(``int` `i = 2; i <= n; i++)` `        ``res = res * i;` `    ``return` `res;` `}`   `// Function to return the` `// count of numbers possible` `int` `Count_number(``int` `N)` `{` `    ``return` `(N * fact(N));` `}`   `// Driver code` `int` `main()` `{` `    ``int` `N = 2;`   `    ``cout << Count_number(N);`   `    ``return` `0;` `}`

## Java

 `// Java implementation of the approach` `import` `java.io.*;`   `class` `GFG` `{`   `// Function to return the factorial of n` `static` `int` `fact(``int` `n)` `{` `    ``int` `res = ``1``;` `    ``for` `(``int` `i = ``2``; i <= n; i++)` `        ``res = res * i;` `    ``return` `res;` `}`   `// Function to return the` `// count of numbers possible` `static` `int` `Count_number(``int` `N)` `{` `    ``return` `(N * fact(N));` `}`   `// Driver code` `public` `static` `void` `main (String[] args) ` `{` `    ``int` `N = ``2``;`   `    ``System.out.print(Count_number(N));` `}` `}`   `// This code is contributed by anuj_67..`

## Python3

 `# Python3 implementation of the approach`   `# Function to return the factorial of n` `def` `fact(n):`   `    ``res ``=` `1` `    ``for` `i ``in` `range``(``2``, n ``+` `1``):` `        ``res ``=` `res ``*` `i` `    ``return` `res`   `# Function to return the` `# count of numbers possible` `def` `Count_number(N):` `    ``return` `(N ``*` `fact(N))`   `# Driver code` `N ``=` `2`   `print``(Count_number(N))`   `# This code is contributed by Mohit Kumar`

## C#

 `// C# implementation of the approach` `using` `System;`   `class` `GFG` `{`   `// Function to return the factorial of n` `static` `int` `fact(``int` `n)` `{` `    ``int` `res = 1;` `    ``for` `(``int` `i = 2; i <= n; i++)` `        ``res = res * i;` `    ``return` `res;` `}`   `// Function to return the` `// count of numbers possible` `static` `int` `Count_number(``int` `N)` `{` `    ``return` `(N * fact(N));` `}`   `// Driver code` `public` `static` `void` `Main () ` `{` `    ``int` `N = 2;`   `    ``Console.WriteLine(Count_number(N));` `}` `}`   `// This code is contributed by anuj_67..`

## Javascript

 ``

Output:

`4`

Time Complexity: O(n)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Recommended Articles
Page :