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

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

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

**Examples:**

Input:N = 2

Output:4

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 <bits/stdc++.h> ` `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; ` `} ` |

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

**Output:**

4

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

## Recommended Posts:

- Count all possible N digit numbers that satisfy the given condition
- Find numbers a and b that satisfy the given conditions
- Count of Numbers in Range where first digit is equal to last digit of the number
- Count numbers in a range with digit sum divisible by K having first and last digit different
- Count n digit numbers not having a particular digit
- Count numbers having 0 as a digit
- Count numbers from 1 to n that have 4 as a digit
- Count of all N digit numbers such that num + Rev(num) = 10^N - 1
- Count numbers having 0 as a digit
- Count of N-digit Palindrome numbers
- Count n digit numbers divisible by given number
- Count of N-digit numbers with all distinct digits
- Count numbers with exactly K non-zero digits and distinct odd digit sum
- Count of n digit numbers whose sum of digits equals to given sum
- Count of Binary Digit numbers smaller than N

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.