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++
// 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; } |
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
<script> // Javascript implementation of the approach // Function to return the factorial of n function 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 function countNum(n) { if (n > 10) return 0; return (9 * factorial(9) / factorial(10 - n)); } // Driver code var n = 3; document.write(countNum(n)); // This code is contributed by rutvik_56. </script> |
Output:
648
Time Complexity: O(n)
Auxiliary Space: O(n)