Funzione ricorsiva

di il
1 risposte

Funzione ricorsiva

Buonasera, dovrei trovare il massimo di un numero utilizzando la funzione ricorsiva (ad esempio il massimo di 2137932 è 9):
Ho fatto questo codice ma funziona solo per numeri fino a 3 cifre, avete consigli, devo usare max o cosa dovrei migliorare ?

def massimo(numero,n=10,m=1,maks=0):
if numero < 10 and numero>=maks: return numero


caso = (numero//m)%10
controllo = (numero//n)%10
if caso >= controllo and caso>=maks:
maks=caso

elif controllo >=maks:
maks = controllo

return massimo(numero//(m*10))




numero=int(input(""))
print(massimo(numero))

1 Risposte

  • Re: Funzione ricorsiva

    Se il tuo codice è questo
    def massimo(numero,n=10,m=1,maks=0):
        if numero < 10 and numero>=maks:
            return numero
    
        caso = (numero//m)%10
        controllo = (numero//n)%10
    
        if caso >= controllo and caso>=maks:
            maks=caso
    
        elif controllo >=maks:
            maks = controllo
    
        return massimo(numero//(m*10))
    allora otterrai sempre la prima cifra del numero.
    L'errore che fai è di confrontare nella funzione le ultime due cifre mentre nella funzione dovresti confrontare l'ultima cifra con la quello che restituiche la funzione a cui passi il numero senza l'ultima cifra.
Devi accedere o registrarti per scrivere nel forum
1 risposte