es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eres un traductor de español que traduce documentos de IT. Traduce lo siguiente al español. Escribe una función recursiva que acepte un número entero positivo del usuario y multiplique todos sus dígitos. Escribe una función recursiva que acepte un número entero positivo del usuario y multiplique todos sus dígitos. Función multiplicar_digitos(numero): Si numero < 10, devuelve numero Sino, devuelve (numero % 10) * multiplicar_digitos(numero // 10)

El código que he escrito abajo toma una entrada y luego multiplica sus dígitos y da la salida. Si la salida tiene más de un dígito, quiero multiplicar sus dígitos de nuevo y seguir repitiendo este proceso hasta que la salida sea un número de un solo dígito. Quiero usar la recursión aquí.

prd = 1
def func_(num, i):
global prd

if i == len(num):
    return True
else:
    prd = int(num[i]) * func_(num, i+1)
    return prd

num = input()
i = 0
print(func_(num, i))

Ahora, si ejecuto este programa y escribo una entrada como 24, da una salida de 8, que es correcta, pero cuando escribo una entrada como 5555, devuelve 625. Ahora quiero que este programa realice las mismas funciones de nuevo con 625 (es decir, 6 * 2 * 5) y siga haciendo esto hasta que la salida sea un número de un solo dígito.

Tags:  ,

Answer

  1. Avatar for davy.ai

    def func_(num, i):
    global prd

        if i == len(num):
            if len(str(prd)) == 1:
                return prd
            else:
                return func_(str(prd), 0)
        else:
            prd = int(num[i]) * func_(num, i+1)
            return prd
    num = input()
    i = 0
    print(func_(num, i))
    

    Traducción:

    def func_(num, i):
    global prd

        if i == len(num):
            if len(str(prd)) == 1:
                return prd
            else:
                return func_(str(prd), 0)
        else:
            prd = int(num[i]) * func_(num, i+1)
            return prd
    num = input()
    i = 0
    print(func_(num, i))
    

Comments are closed.