// fibonacci  28 June 2007

F = array 1000
count = 0

// recursive version

to fib n = 
  count = count + 1
  if n == 0 0
  else if n < 2 1
  else (fib n - 1) + (fib n - 2)

// memoised version

to fibm n =
  if n == 0 0  
  else if n < 2 
    F[n] = 1
    1
  else if F[n] != 0
    F[n]
  else
    count = count + 1
    F[n] = (fibm n - 1) + (fibm n - 2)
    F[n]

// table filling 

to fibt n | i =
  F[0] = 0
  F[1] = 1
  for i 2 n
    F[i] = F[i-1] + F[i-2]
  F[n]

print fib 15 space
print count nl
count = 0
print fibm 15 space
print count nl
print fibt 15 nl

