Code Review

Compare your solutions

    #| BEGIN (Введите свое решение) |#
(define (f n) 
  (if (< n 3) 
      n 
      (+ 
         (f (- n 1))
         (* (f (- n 2)) 2)
         (* (f (- n 3)) 3)
       )
      )
  )

(define (_f-iter n iter acc1 acc2 acc3)
  (cond
    ((< n 3) n)
    ((= iter n) (+ acc1 (* 2 acc2) (* 3 acc3)))
    (else (_f-iter n (+ iter 1) (+ acc1 (* 2 acc2) (* 3 acc3)) acc1 acc2))
  )
)

(define (f-iter n) (_f-iter n 3 2 1 0))
#| END |#