Dado un entero positivo N , la tarea es verificar si todos los dígitos del entero N dado son iguales o no. Si se encuentra que es cierto , escriba Sí . De lo contrario , imprima No.
Ejemplos:
Entrada: N = 222
Salida: SíEntrada: N = 232
Salida: No
Enfoque ingenuo: el enfoque más simple para resolver el problema dado es iterar sobre todos los dígitos del número N dado y, si existe algún dígito distinto, imprimir Sí . De lo contrario , imprima No.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to implement // the above approach #include <bits/stdc++.h> using namespace std; // Function to check if all the digits // in the number N is the same or not string checkSameDigits(int N) { // Find the last digit int digit = N % 10; while (N != 0) { // Find the current last digit int current_digit = N % 10; // Update the value of N N = N / 10; // If there exists any distinct // digit, then return No if (current_digit != digit) { return "No"; } } // Otherwise, return Yes return "Yes"; } // Driver Code int main() { int N = 222; cout << (checkSameDigits(N)); return 0; } // This code is contributed by Potta Lokesh
Java
// Java program for the above approach import java.io.*; class GFG { // Function to check if all the digits // in the number N is the same or not public static String checkSameDigits(int N) { // Find the last digit int digit = N % 10; while (N != 0) { // Find the current last digit int current_digit = N % 10; // Update the value of N N = N / 10; // If there exists any distinct // digit, then return No if (current_digit != digit) { return "No"; } } // Otherwise, return Yes return "Yes"; } // Driver Code public static void main(String args[]) throws IOException { int N = 222; System.out.println( checkSameDigits(N)); } }
Python3
# Python Program to implement # the above approach # Function to check if all the digits # in the number N is the same or not def checkSameDigits(N) : # Find the last digit digit = N % 10; while (N != 0) : # Find the current last digit current_digit = N % 10; # Update the value of N N = N // 10; # If there exists any distinct # digit, then return No if (current_digit != digit) : return "No"; # Otherwise, return Yes return "Yes"; # Driver Code if __name__ == "__main__" : N = 222; print(checkSameDigits(N)); # This code is contributed by AnkThon
C#
// C# Program to implement // the above approach using System; class GFG { // Function to check if all the digits // in the number N is the same or not static string checkSameDigits(int N) { // Find the last digit int digit = N % 10; while (N != 0) { // Find the current last digit int current_digit = N % 10; // Update the value of N N = N / 10; // If there exists any distinct // digit, then return No if (current_digit != digit) { return "No"; } } // Otherwise, return Yes return "Yes"; } // Driver Code public static void Main() { int N = 222; Console.Write(checkSameDigits(N)); } } // This code is contributed by divyesh972019.
Javascript
<script> // javascript Program to implement // the above approach // Function to check if all the digits // in the number N is the same or not function checkSameDigits(N) { // Find the last digit var digit = N % 10; while (N != 0) { // Find the current last digit var current_digit = N % 10; // Update the value of N N = parseInt(N / 10); // If there exists any distinct // digit, then return No if (current_digit != digit) { return "No"; } } // Otherwise, return Yes return "Yes"; } // Driver Code var N = 222; document.write(checkSameDigits(N)); // This code is contributed by ipg2016107. </script>
Yes
Complejidad de tiempo: O(log 10 N)
Espacio auxiliar: O(1)
Enfoque eficiente: el enfoque anterior también se puede optimizar formando otro número, digamos M de la misma longitud que el número dado N con el dígito más a la derecha de N , suponiendo que N tiene todos los mismos dígitos y luego comparándolo con N. Ahora, M es de type (K*111….) , donde K es cualquier dígito de N .
Ahora, para crear el número M que consta de solo 1 , la suma de una progresión geométrica se puede usar como se ilustra para el conteo de dígitos como 3:
Considere el primer término (digamos a) como 1 y la razón común (digamos r) como 10. Ahora, para el valor de recuento de dígitos (digamos D) como 3, la suma de la progresión geométrica viene dada por:
=> Suma =
=> Suma =
=> Suma =
-> Suma = 111
A partir de las observaciones anteriores, genere el número M y verifique si K*M es lo mismo que N o no. Si se encuentra que es cierto , escriba Sí . De lo contrario , imprima No.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to check if all the digits // in the number N is the same or not string checkSameDigits(int N) { // Get the length of N int length = int(log10(N)) + 1; // Form the number M of the type // K*111... where K is the // rightmost digit of N int M = (int(pow(10, length)) - 1) / (10 - 1); M *= N % 10; // Check if the numbers are equal if (M == N) return "Yes"; // Otherwise return "No"; } // Driver Code int main() { int N = 222; cout << checkSameDigits(N); } // This code is contributed by Pushpesh raj
Java
// Java program for the above approach import java.io.*; class GFG { // Function to check if all the digits // in the number N is the same or not public static String checkSameDigits(int N) { // Get the length of N int length = ((int)Math.log10(N)) + 1; // Form the number M of the type // K*111... where K is the // rightmost digit of N int M = ((int)Math.pow(10, length) - 1) / (10 - 1); M *= N % 10; // Check if the numbers are equal if (M == N) return "Yes"; // Otherwise return "No"; } // Driver Code public static void main(String args[]) throws IOException { int N = 222; System.out.println( checkSameDigits(N)); } }
Python3
# Python3 program for the above approach import math # Function to check if all the digits # in the number N is the same or not def checkSameDigits(N) : # Get the length of N length = int(math.log10(N)) + 1; # Form the number M of the type # K*111... where K is the # rightmost digit of N M = (int(math.pow(10, length)) - 1)// (10 - 1); M *= N % 10; # Check if the numbers are equal if (M == N) : return "Yes"; # Otherwise return "No"; # Driver Code if __name__ == "__main__" : N = 222; print(checkSameDigits(N)); # This code is contributed by AnkThon
C#
// C# program for the above approach using System; class GFG { // Function to check if all the digits // in the number N is the same or not public static String checkSameDigits(int N) { // Get the length of N int length = ((int)Math.Log10(N)) + 1; // Form the number M of the type // K*111... where K is the // rightmost digit of N int M = ((int)Math.Pow(10, length) - 1) / (10 - 1); M *= N % 10; // Check if the numbers are equal if (M == N) return "Yes"; // Otherwise return "No"; } // Driver Code public static void Main() { int N = 222; Console.WriteLine(checkSameDigits(N)); } } // This code is contributed by subhammahato348.
Javascript
<script> // JavaScript program for the above approach // Function to check if all the digits // in the number N is the same or not function checkSameDigits(N) { // Get the length of N var length = (Math.log10(N)) + 1; // Form the number M of the type // K*111... where K is the // rightmost digit of N var M = (Math.pow(10, length) - 1) / (10 - 1); M *= N % 10; // Check if the numbers are equal if (M = N) return "Yes"; // Otherwise return "No"; } // Driver Code var N = 222; document.write(checkSameDigits(N)); // This code is contributed by shivanisinghss2110 </script>
Yes
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por mandalrahul05 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA