ivaneeo's blog

自由的力量,自由的生活。

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
关于n!求解:
1.线性递归

    ch1-Z-G-7.gif
(define (factorial n)
  (if (= n 1)
      1
      (* n (factorial (- n 1)))))
如图所示的线性的膨胀再线性的缩减,就为线性递归.

2.迭代
    ch1-Z-G-10.gif
(define (factorial n)
  (fact-iter 1 1 n))

(define (fact-iter product counter max-count)
  (if (> counter max-count)
      product
      (fact-iter (* counter product)
                 (+ counter 1)
                 max-count)))

注:试验(factorial 10000),递归堆栈溢出,而迭代则可以运行.
posted on 2006-07-30 11:37 ivaneeo 阅读(560) 评论(0)  编辑  收藏 所属分类: scheme-语言之母

只有注册用户登录后才能发表评论。


网站导航: