Come esempio di funzione ricorsiva, molto semplice ma nello stesso
tempo sorprendente, consideriamo la trasformazione di un numero scritto
nella base 10 in una base diversa:
def dividi(num,base):
if num/base ==0: # / divisione intera, % modulo o
resto nella div intera
print num % base, # se
num/base e' zero allora stampa il resto
else:
# con la ',' non va a capo
dividi(num/base,base) #
altrimenti continua a dividere
print num % base,
esecuzione di dividi(4,2)
dividi(4,2):
dividi(2,2):
dividi(1,2):
if
num/base ==0:
print num % base, stampa 1 % 2 = 1 e finisce
#riprende dividi(2,2):
print num % base, stampa 2 % 2 = 0 e finisce
#riprende dividi(4,2):
print num % base, stampa 4 % 2 = 0 e finisce