Recuento de números de N dígitos con todos los dígitos distintos

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:
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)
 

Publicación traducida automáticamente

Artículo escrito por spp____ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *