# ########################
# Esempi di funzioni ricorsive con l'equivalente iterativo
######################

def sommaRicorsiva(lista):
    if len(lista) == 1:
        return lista[0]
    else:
        return sommaRicorsiva(lista[1:])+lista[0]

def sommaIterativa(lista):
    somma=0
    for num in lista:
        somma+=num
    return somma

##########################

def fattorialeRicorsivo(numero):
    if numero == 1:
        return numero
    else:
        return numero*fattorialeRicorsivo(numero-1)

def fattorialeIterativo(numero):
    risultato=1
    for i in range(1,numero+1):
        risultato*=i
    return risultato

###########################

def mediaRicorsiva(lista):
    if len(lista)==1:
        return lista[0]
    else:
        return (lista[0]+mediaRicorsiva(lista[1:])*len(lista[1:]))/len(lista)

def mediaIterativa(lista):
    totale = 0
    for i in lista:
        totale+=i
    return totale/len(lista)

##########################
