Forum >> Principianti >> L'iterazione è umana, la ricorsione è divina

Pagina: 1

Ciao, alla fine del capitolo sulle funzioni c'è un paragrafo facoltativo riguardante le funzioni ricorsive.
Siccome non ho mai programmato ricorsivamente finora, vorrei sapere come è possibile semplificare il codice che ho scritto, grazie.

L'esercizio chiede di scrivere una funzione ricorsiva che visualizzi tutte le sottostringhe di una stringa data:
##
# Questo programma legge una parola e visualizza tutte le
# sue sottostringhe, ordinate per lunghezza crescente.
#

def main() :
    global x, stringa
    x = 1
    stringa = input("Inserire una stringa: ")
    print("\nLe sottostringhe sono:\n")
    sottoStringhe(stringa)

## Visualizza tutte le sottostringhe di una stringa data.
#  @param s una stringa
#
def sottoStringhe(s) :
    global x
    print(s[:x])
    if len(s) == x :
        x = x + 1
        return
    sottoStringhe(s[1:])
    if x > len(stringa) : return
    sottoStringhe(stringa)

# Inizio del programma.
main()

Riuscite a realizzare la funzione ricorsiva senza utilizzare variabili globali?


--- Ultima modifica di Ὅμηρος 蟒蛇 in data 2018-02-18 22:23:40 ---


Pagina: 1



Esegui il login per scrivere una risposta.