Dado un número entero N , la tarea es encontrar el conteo de números de N dígitos con todos los dígitos distintos.
Ejemplos:
Entrada: N = 1
Salida: 9
1, 2, 3, 4, 5, 6, 7, 8 y 9 son los números de 1 dígito
con todos los dígitos distintos.
Entrada: N = 3
Salida: 648
Enfoque: si N > 10 , es decir, habrá al menos un dígito que se repetirá, por lo tanto, para tales casos, la respuesta será 0 ; de lo contrario, para los valores de N = 1, 2, 3, …, 9 , se formará una serie como 9 , 81, 648, 4536, 27216, 136080, 544320,… cuyo término N -ésimo será 9*9! / (10 – N)! .
A continuación se muestra la implementación del enfoque anterior:
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>
Producción:
648
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(n)