Open In App

Count of N digit numbers possible which satisfy the given conditions

Last Updated : 08 Mar, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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 
 

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;
}


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




<script>
 
// Javascript implementation of the approach
 
// Function to return the factorial of n
function fact(n)
{
    let res = 1;
    for (let i = 2; i <= n; i++)
        res = res * i;
    return res;
}
 
// Function to return the
// count of numbers possible
function Count_number(N)
{
    return (N * fact(N));
}
 
// Driver code
    let N = 2;
 
    document.write(Count_number(N));
 
</script>


Output: 

4

 

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



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads