Probabilidad de que un número de N cifras sea palíndromo

Dado un número entero N , la tarea es encontrar la probabilidad de que un número con un número de dígitos como N sea un palíndromo. 
El número puede tener ceros a la izquierda.
Ejemplos: 

Entrada: N = 5 
Salida: 1 / 100
Entrada: N = 6 
Salida: 1 / 1000 

Solución: 

  • Como se permiten ceros a la izquierda, un número total de números de N dígitos es 10 N .
  • Un número es un palíndromo cuando los primeros N/2 dígitos coinciden con los últimos N/2 dígitos en orden inverso.
  • Para un número par de dígitos, podemos elegir los primeros N/2 dígitos y luego duplicarlos para formar el resto de N/2 dígitos para que podamos elegir (N)/2 dígitos.
  • Para un número impar de dígitos, podemos elegir primero (N-1)/2 dígitos y luego duplicarlos para formar el resto de (N-1)/2 dígitos para poder elegir (N+1)/2 dígitos.
  • Entonces, la probabilidad de que un número de N dígitos sea palíndromo es 10 ceil ( N / 2 ) / 10 N o 1 / 10 floor ( N ​​/ 2 )

A continuación se muestra la implementación del enfoque:  

C++

// C++ code of above approach
#include <bits/stdc++.h>
using namespace std;
 
// Find the probability that a
// n digit number is palindrome
void solve(int n)
{
    int n_2 = n / 2;
 
    // Denominator
    string den;
    den = "1";
 
    // Assign 10^(floor(n/2)) to
    // denominator
    while (n_2--)
        den += '0';
 
    // Display the answer
    cout << 1 << "/" << den << "\n";
}
 
// Driver code
int main()
{
 
    int N = 5;
 
    solve(N);
 
    return 0;
}

Java

// Java code of above approach
import java.util.*;
 
class GFG
{
 
// Find the probability that a
// n digit number is palindrome
static void solve(int n)
{
    int n_2 = n / 2;
 
    // Denominator
    String den;
    den = "1";
 
    // Assign 10^(floor(n/2)) to
    // denominator
    while (n_2-- > 0)
        den += '0';
 
    // Display the answer
    System.out.println(1 + "/" + den);
}
 
// Driver code
public static void main(String[] args)
{
    int N = 5;
 
    solve(N);
}
}
 
// This code is contributed by Rajput-Ji

Python3

# Python3 code of above approach
 
# Find the probability that a
# n digit number is palindrome
def solve(n) :
 
    n_2 = n // 2;
 
    # Denominator
    den = "1";
 
    # Assign 10^(floor(n/2)) to
    # denominator
    while (n_2) :
        den += '0';
         
        n_2 -= 1
         
    # Display the answer
    print(str(1) + "/" + str(den))
     
# Driver code
if __name__ == "__main__" :
 
    N = 5;
 
    solve(N);
 
# This code is contributed by AnkitRai01

C#

// C# implementation of the approach
using System;
 
class GFG
{
 
// Find the probability that a
// n digit number is palindrome
static void solve(int n)
{
    int n_2 = n / 2;
 
    // Denominator
    String den;
    den = "1";
 
    // Assign 10^(floor(n/2)) to
    // denominator
    while (n_2-- > 0)
        den += '0';
 
    // Display the answer
    Console.WriteLine(1 + "/" + den);
}
 
// Driver code
public static void Main(String[] args)
{
    int N = 5;
 
    solve(N);
}
}
 
// This code is contributed by PrinciRaj1992

Javascript

<script>
    // Javascript implementation of the approach
     
    // Find the probability that a
    // n digit number is palindrome
    function solve(n)
    {
        let n_2 = parseInt(n / 2, 10);
 
        // Denominator
        let den;
        den = "1";
 
        // Assign 10^(floor(n/2)) to
        // denominator
        while (n_2-- > 0)
            den += '0';
 
        // Display the answer
        document.write(1 + "/" + den + "</br>");
    }
     
    let N = 5;
   
    solve(N);
 
// This code is contributed by divyeshrabadiya07.
</script>
Producción: 

1/100

 

Complejidad de tiempo: O (N), ya que estamos usando un bucle para atravesar N veces.
Espacio auxiliar: O(1), ya que no estamos utilizando ningún espacio adicional.

Publicación traducida automáticamente

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