Aritmetica ricorsiva

Vedi la discussione

Addizione

Se sai fare l’operazione incremento di 1 (il successivo) allora l’addizione…

def add(a, b):
    while(b > 0):
        a += 1
        b -= 1
    return a

Versione ricorsiva

def add(a, b):
    if(b == 0):
        return a
    else:
        a += 1
        b -= 1
        return add(a, b)
def add(a, b):
    if(b == 0): 
        return a
    else:
        return add(a+1, b-1)
def add(a, b):
    if(b == 0): 
        return a
    else:
        return 1+add(a, b-1)

Moltiplicazione

Se sai fare l’addizione allora la moltiplicazione…

Versione iterativa

def mul(a, b):
    ris = 0
    while(b > 0):
        ris += a
        b   -= 1
    return ris

Versione ricorsiva

def mul(a, b):
    if(b == 0):
        return 0
    else:
        return a+mul(a, b-1)

Elevamento a potenza

Se sai fare la moltiplicazione allora l’elevamento a potenza…

Versione iterativa

def pow(a, b):
    ris = 1
    while(b > 0):
        ris *= a
        b   -= 1
    return ris

Versione ricorsiva

def pow(a, b):
    if(b == 0):
        return 1
    else:
        return a*mul(a, b-1)