in pseudo python
def fib(x):
tot = 0
stack = [x]
while stack:
a = stack.pop()
if a in [0,1]:
tot += 1
else:
stack.push(a - 1)
stack.push(a - 2)
return tot
, , a - 1 a - 2.
, , (, ) (3) ( , ). , , .
Edit:
def fib(x):
if (x == 0) or (x == 1):
return 1
else:
temp1 = fib(x - 1)
temp2 = fib(x - 2)
return temp1 + temp2
(, , , , .)
, , .
.
x, temp1 temp2. fib (3)
fib, , , , x = 3 temp1 temp2 .
, temp1, x = 2 temp1 temp2 . ,
(assign temp1, x = 1, -, -)
(assign temp1, x = 2, -, -)
(out , x = 3, -, -)
1
(assign temp2, x = 0, -, -)
(assign temp1, x = 2, temp1 = 1, -)
(out , x = 3, -, -)
1
(assign temp1, x = 2, temp1 = 1, temp2 = 1)
(out , x = 3, -, -)
2
(out , x = 3, temp1 =2, -)
,
(assign temp2, x = 1, -, -)
(out , x = 3, temp1 =2, -)
.