;;; Fibonacci-Zahlen
;;; DrScheme
;;; Wolfgang.Urban@schule.at
;;; Algorithmus 1
;
(define (fibo1 n)
(if (<= n 2)
1
(+ (fibo1 (- n 1)) (fibo1 (- n 2)))
)
)
; Algorithmus 1a nicht möglich
; if und cond *müssen* einen else-Zweig besitzen
(define (fibo1_ n)
(cond ((<= n 2) 1)
(else (+ (fibo1_ (- n 1)) (fibo1_ (- n 2))))
)
)
; Algorithmus 2 nicht möglich ???
; ??? es gibt keine assoziative Listen ???
; Algorithmus 3 nicht möglich ???
; in Scheme gibt es keine echte Iteration
;;; Algorithmus 4
;
(define (fibo4 n a b)
(cond ((= n 1) a)
((= n 2) b)
(else (fibo4 (- n 1) b (+ a b)))
)
)
;;; Aufrufbeispiele
(fibo1 10)
(fibo4 10 1 1)