Python - Comparar digitos.

 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Comparar digitos.

Publicado por Manuel (3 intervenciones) el 27/03/2020 04:53:12
Hola
necesito resolver el siguiente problema:
Escriba una función que determine si en dos números enteros aparecen los mismos dígitos. No tenga en cuenta ni la frecuencia ni el orden de aparición de los digitos en los números. Los números no tienen necesariamente la misma cantidad de digitos. Por ejemplo, si los números son '998' y '89' la función debería retornar True.
Sin embargo tengo prohibido convertir el numero a str para comparar y unicamente puedo usar iterador simple (While) y pues condicionales (if, elif, else).

He intentado hacerlo pero nunca me regresa la respuesta esperada, o simplemente no regresa nada. Porfa ayudaaaa :(
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.847
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Comparar digitos.

Publicado por tincopasan (561 intervenciones) el 27/03/2020 05:21:41
hola:
pon el código que has intentado aunque no regrese lo que esperas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Comparar digitos.

Publicado por Manuel (3 intervenciones) el 27/03/2020 06:03:58
ffff

te adjunto la imagen del programa con unos casos de prueba. El problema está en que cuando hay al menos dos digitos distintos en el primer numero siempre da false, asi se compare con el mismo numero. Tambien te coloco el codigo aqui para que puedas copiarlo. Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
def mismos_digitos(a: int, b: int)->bool:
    rta=True
    while a>0:
        if a%10!=b%10:
            rta=False
            b//=10
        a//=10
    return rta
 
 
n1=int(input ("numero1: "))
n2=int(input ("numero2: "))
print (mismos_digitos(n1,n2))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 119
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Comparar digitos.

Publicado por Andrés (55 intervenciones) el 27/03/2020 07:30:13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def mismos_digitos(a:int, b:int) -> bool:
    c = b
    todos_en_a = True
    while a > 0:
        da = a % 10
        en_b = False
        while b > 0 and not en_b:
            db = b % 10
            en_b = (da == db)
            b //= 10
        b = c
        todos_en_a = todos_en_a and en_b
        a //= 10
    return todos_en_a
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Comparar digitos.

Publicado por Manuel (3 intervenciones) el 27/03/2020 16:32:00
Está perfeco. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comparar digitos.

Publicado por dsaa (1 intervención) el 29/03/2020 23:49:54
oye cuando se coloca el a=111234 y en b=12345 sale true en vez de false
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 119
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Comparar digitos.

Publicado por Andrés (55 intervenciones) el 30/03/2020 03:57:25
1
2
3
4
5
a, b = 111234, 12345
 
result = mismos_digitos(a, b) and mismos_digitos(b, a)
 
print(result)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar