Exercise 1.11.  A function f is defined by the rule that f(n) = n if n<3 and f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3) if n> 3. Write a procedure that computes f by means of a recursive process. Write a procedure that computes f by means of an iterative process.

          recursive:

          (define (fn n)
            (cond ((>= n 3) (+ (+ (fn (- n 1)) (* 2 (fn (- n 2)))) (* 3 (fn (- n 3)))))
                  ((< n 3) n)
             ))


           iterative:

          (define (re n)
            (if (< n 3)
                n
                (iter 2 1 0 n)
                ))
          (define (iter a b c n)
          (if(= n 3)
             (ca a b c)
             (iter (ca a b c) a b (- n 1))
             )
          )
          (define (ca a b c)
            (+ a (* 2 b) (* 3 c) )
          )

          posted on 2009-03-10 08:51 lzj520 閱讀(217) 評論(0)  編輯  收藏 所屬分類: 個人學習日記sicp
          主站蜘蛛池模板: 涪陵区| 三亚市| 耿马| 二连浩特市| 宾川县| 天台县| 普兰县| 嘉定区| 汾阳市| 云安县| 南城县| 盐源县| 南和县| 五家渠市| 潞城市| 无极县| 三门县| 广丰县| 临海市| 天长市| 宝山区| 关岭| 永福县| 淮南市| 施秉县| 清原| 嵊州市| 旌德县| 定兴县| 深圳市| 泰和县| 平罗县| 临沭县| 巧家县| 永年县| 桃江县| 米易县| 满城县| 婺源县| 额济纳旗| 衡阳县|