Recuento de números de N dígitos posibles que satisfacen las condiciones dadas

Dado un número entero N , la tarea es encontrar el número total de números de N dígitos posibles tal que: 
 

  1. Todos los dígitos de los números son del rango [0, N] .
  2. No hay ceros iniciales.
  3. Todos los dígitos de un número son distintos.

Ejemplos: 
 

Entrada: N = 2 
Salida:
10, 12, 20 y 21 son los únicos 
números posibles de 2 dígitos que satisfacen las condiciones dadas.
Entrada: N = 5 
Salida: 600 
 

Enfoque: dado N número de dígitos y el primer lugar se puede llenar de N maneras [ 0 no se puede tomar como el primer dígito y los dígitos permitidos son del rango [1, N] ]  Los lugares
restantes (N – 1) se pueden llenar en N! maneras 
Por lo tanto, la cuenta total de número posible será N * N! .
Tome un ejemplo para una mejor comprensión. Diga, N = 8 
 

n=8

¡El primer lugar se puede completar con cualquier dígito de [1, 8] y los 7 lugares restantes se pueden completar con 8! maneras, es decir, 8 * 7 * 6 * 5 * 4 * 3 * 2. 
Entonces, ¡formas totales = 8 * 8! = 8 * 8 * 7 * 6 * 5 * 4 * 3 * 2 = 322560
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 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>
Producción: 

4

 

Complejidad temporal: O(n)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por nidhiva 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 *