merhaba attigim kod go kodu ama anlatayim python olarak
// parametre olarak bir sayi aliyor
def fib(n)
// eger n 1 den kucuk veya esitse n donuyor
if n <= 1:
return n
// eger n birden buyuk ise
// fib fonksiyonunu n -1 ve n -2 parametreleri ile tekrar cagiriyor ve toplamini return ediyor
// n 1 veya daha dusuk sayi olana kadar bu dongu kendi icinde devam ediyor
return fib(n - 1) + fib(n - 2)
n = 3 diyelim
bu durumda ( 3 - 1) + (3 -2)
1 . parantezde n 2 oluyor
(2 -1) + ( 2 - 2) seklinde recursive olarak cagrilmaya devam ediyor n 1 veya daha kucuk bir sayi olana kadar.
2 . parantezde n 0 oldugu icin bize direk olarak n donuyor. yani islem su sekilde devam ediyor
yani bu durumda soyle devam ediyor: fib(3 -1) + 0
enson 2 + 0 = 2 olduğundan fib(3) bize 2 donuyor
fib(0)
// 0
fib(1)
// 1
fib(2)
// 1
fib(3)
// 2
fib(4)
// 3
fib(5)
// 5
fib(6)
// 8
fib(7)
// 13
fib(8)
// 21
edit :
// sayfanin basinda fonksiyonu tanimlarsan
def fib(n)
if n <= 1:
return n
return fib(n - 1) + fib(n - 2)
else if stack'i icinde su sekilde kullanabilirsin
elif b == "fib":
print(fib(a))