summaryrefslogtreecommitdiff
path: root/fibonacci
blob: f817a9aa7e8de71d4d35b8c6f682e12cefe4e0c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#  fiBonacci.R
#	playing with recursion coz bored
#	Stephen Pratt			25/08/2009 4:19:50 PM	

#######################################################################
#      Recursive version of Fibonacci series   (very inefficient)
fiBonacci <- function(n, count = T, first = T){
	if(first) i <<- 0
	if(count) i <<- i + 1
	if(as.integer(n) %in% 0:1) return(n)
	fib <- fiBonacci(n = n-1, co=count, f=F) + fiBonacci(n = n-2, co=count, f=F)
	ifelse(first, return(list(fib = fib, i = i)), fib)
}
#######################################################################
#     dreaded for-loop version of Fibonacci series
fiB <- function(n){
	fib <- NULL
	fib[1] <- 0			# indexes offset by 1 because R can't handle x[0]
	fib[2] <- 1
	for(i in 3:(n+1)) fib[i] <- fib[i-1] + fib[i-2]
	return(fib)
}