Forum >> Principianti >> [Risolto] Trovare il massimo di una lista

Pagina: 1

Salve, ho un esercizio d'esame che mi chiede di scrivere una funzione ricorsiva che trovi il massimo valore all'interno di una lista contenente dei numeri.


La versione iterativa è:


def massimo(L):
m = L(0)
for v in L(1:]
m = m if v < m else v
return m


*Ovviamente ho rispettato l'indentazione e ho messo le parentesi quadre per le due indicizzazioni, nel sito non sono ancora molto pratico.

Qualcuno ha idea di come scriverla ricorsivamente?


--- Ultima modifica di iulian in data 2019-01-13 18:43:42 ---
x=[val,val,ecc]

def massimo(lista):

x=lista

y=max(x)

return y
E poi:
massimo(x)

La chiamata di questa funzione restituira il massimo valore presente nella lista poi questo valore puoi assegnarlo ad una variabile fare quello che devi fare ecc...
Ma LOL, magari il senso dell'esercizio è farlo senza usare "max", no?

Comunque, la versione ricorsiva sarebbe:

- se la lista ha un solo elemento, allora restituisci quello;

- se no, togli il primo (o l'ultimo, come vuoi) elemento della lista e chiama ricorsivamente la funzione su ciò che resta della lista; restituisci il valore più grande tra i due (ciò che ottieni dalla chiamata ricorsiva, e il primo elemento della lista).

Ma LOL, magari il senso dell'esercizio è farlo senza usare "max", no?

Comunque, la versione ricorsiva sarebbe:

- se la lista ha un solo elemento, allora restituisci quello;

- se no, togli il primo (o l'ultimo, come vuoi) elemento della lista e chiama ricorsivamente la funzione su ciò che resta della lista; restituisci il valore più grande tra i due (ciò che ottieni dalla chiamata ricorsiva, e il primo elemento della lista).


Grazie!
prova a postare la soluzione...


Pagina: 1



Esegui il login per scrivere una risposta.