Comprobar si todos los dígitos del número dado son iguales

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 . De lo contrario , imprima No.

Ejemplos:

Entrada: N = 222
Salida:

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 . 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>
Producción

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 = \frac{a*(r^D - 1)}{r - 1}

=> Suma =  \frac{1*(10^3 - 1)}{10 - 1}

=> Suma = \frac{999}{9}

 -> 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 . 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>
Producción

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

Deja una respuesta

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