Please post your solutions to the Nov 17 In-Class Exercise to this thread.
Best,
Chris
<pre> (define fib (lambda (n) (if (or (= n 1) (= n 2)) 1 (+ (fib (- n 1)) (fib (- n 2)))))) </pre>
<nowiki> (define (fib n) (car (fib-list n '(1 1))))
(define (fib-list n L) (if (equal? n (- (length L) 1)) L (fib-list n (cons (+ (car L) (car (cdr L))) L)))) </nowiki>
(Edited: 2021-11-17)<nowiki> (define (fib-helper n1 n2 prev1 prev2) (if (< n1 2) 1 (if (< n1 4) n1 (if (= n1 n2) (+ prev1 prev2) (if (= n2 3) (fib-helper n1 (+ n2 1) 3 2) (fib-helper n1 (+ n2 1) (+ prev1 prev2) prev1))))))
(define (fib n)
(fib-helper n 0 0 0))
(fib 5)</nowiki> (define fibonacci (lambda (n) (cond ((< n 2) 0) ((= n 2) 1) (else (+ (fibonacci (- n 2)) (fibonacci (- n 1)))))))
(define (fib-list n) (if (< n 2) (list 1 1) (let ((so-far (fib-list (- n 1)))) (cons (+ (car so-far) (car (cdr so-far))) so-far))))
(define (fib n) (car (fib-list n)))
(define (fib-list n) (if (< n 2) (list 1 1) (let ((so-far (fib-list (- n 1)))) (cons (+ (car so-far) (car (cdr so-far))) so-far)))) (define (fib n) (car fib-list n))
(define (fib n) (fib-list n '(1 1)))
(define (fib-list n L) (if (equal? (- n 1) (length L)) (+ (car L) (car (cdr L))) (fib-list n (cons (+ (car L) (car (cdr L))) L))))
(define (fib n) (if (< n 2) (list 1 1) (+ (fib (- n 1)) (fib (- n 2)))))
(fib 10)
(define (fib-helper n i fib-prev1 fib-prev2)
(if (= i n) fib-prev1 (fib-helper n (+ i 1) fib-prev1 (fib-prev1 + fib-prev2))))
(define (fib n) (fib-helper n 0 1 1))
(Edited: 2021-11-17)