[ Mi105 @ 25.04.2011. 09:02 ] @
Jel' moze neko da mi objasni ovaj primer? Funkcije donekle razumem ali ovde vec pocinjem da se gubim. Zasto je 4!=24 i 5!=120? Hvala.
Code:
#defines a function that calculates the factorial
def factorial(n):
  if n <= 1:
    return 1
  return n*factorial(n-1)

print "2! = ",factorial(2)
print "3! = ",factorial(3)
print "4! = ",factorial(4)
print "5! = ",factorial(5)

Output:
2! = 2
3! = 6
4! = 24
5! = 120
[ del-boy @ 25.04.2011. 10:19 ] @
Ne razumeš zašto je 5! = 120 ili ne razumeš kako radi funkcija?

Ako je ovo prvo onda pogledaj ovo: http://sr.wikipedia.org/wiki/%...%D1%80%D0%B8%D1%98%D0%B5%D0%BB .

A ako ne razumeš rekurziju onda probaj samo da ispratiš korake. Konkretno ova funkcija se zasniva na činjenici da je 5! = 1*2*3*4*5, a složićeš se da to možeš napisati i 5! = 4! * 5 jer se svodi na isto. Isto tako je 4! = 1*2*3*4 odnosno 4! = 3! * 4. Prateći ovaj obrazac možeš da izračunaš faktorijel od bilo kog broja. Upravo to ova funkcija radi.

Za svaki broj koji joj proslediš pokušaće da izračuna taj_broj * factorial(taj_broj -1), dok god je taj broj veći od 1. Faktorijel od 1 je 1, tako da ako joj proslediš 1 samo će to vratiti.

Pokušaj da zapišeš svaki korak izvršavanja, često pomogne :)