Write a program to find the nth number in the fibonacci series

Imperative Programmer (Earlier)

public void int fib(int n) {
    int a = -1,b = 1;
    for(int i = 0 ; i < n ; i++){
      c = a + b;
      a = b;
      b = c;
    }
    return b;
}

can you write this in any other way? hmm.. blink...

Functional Programmer (Now)

(define (fib x)
  (if (or (= x 0) (= x 1))
      x
      (+ (fib (- x 2)) (fib (- x 1)))))

can you write this in any other way? hmm.. well.. i can write it using tail recursion

(define (fib x)
   (define (fib-iter a b count)
     (if (= 0 count)
	 a
	 (fib-iter b (+ a b) (- count 1))))
  (fib-iter 0 1 x))