Razlaganje programa na manje dijelove - funkcije

Funkcije

Primjeri rekurzivnih funkcija

  1. Izračunavanje vrijednosti funkcije n! pomoću rekurzije.
    Po definiciji je:
    0! = 1
    1! = 1
    2! = 1*2 = 1!*2
    3! = 1*2*3 = 2!*3
    ...
    n! = 1*2*3*...*n = (n-1)!*n

    Dakle n! se može izračunati ako je poznat (n-1)!, a (n-1)! može se izračunati ako je poznat (n-2)!, itd.

    Iz prethodnog razmatranja možemo zaključiti slijedeće: ako računamo umnožak prvih n prirodnih brojeva:
    uvjet zaustavljanja je 1!=1,
    a opći oblik će biti n!=n*(n-1)! .

    Rekurzivna funkcija glasi:
    Za nenegativan cijeli broj e slijedeće rekurzivna funkcija računa potenciju be
    (uvjet zaustavljanja je za e=0 potencija =1, jer je b0=1, za svaki b>0)

    def faktorijel (n):

        if n==1:
            return 1
        else:
            return faktorijel(n-1)*n
    n = int(input())
    print (faktorijel (n))

  2. def potencija(b, e):
        if e==0:
            return 1
        else:
            return b * potencija(b, e-1)
        
    baza = int(input('Baza: '))
    eksponent = int(input('Eksponent: '))
    print (potencija (baza, eksponent))

  3. Fibonaccijev niz je niz brojeva definiran sa:
    f(1) = 1
    f(2) = 2
    f(3) = f(1) + f(2) = 1 + 2 = 3
    f(4) = f(2) + f(3) = 2 + 3 = 5
    ...
    f(m) = f(m-2) + f(m-1)

    Funkcija:

    def fibonacci (n):
        if n == 1 or n==2:
            return 1
        else:
            return fibonacci(n-1)+fibonacci(n-2)

    n = int(input())
    print (fibonacci(n))