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

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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation of the approach
#include <bits/stdc++.h>
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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


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

Recommended Posts:


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.