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