码迷,mamicode.com
首页 > 其他好文 > 详细

【SICP练习】10 练习1.16

时间:2015-02-05 20:34:01      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:sicp   迭代   测试   lambda   square   



练习1.16

这道题题目特别长,说的无非就是要用一个不变量记录中间结果,然后写出对数步数内的通过迭代来计算幂的函数,当然了还要用到题目中括号内的那个关系。下面就直接上代码了:

(define(fast-expt b n)

       (fast-expt-iter 1 b n))

(define(fast-expt-iter a b n)

       (cond ((= n 0) a)

               ((even? n) (fast-expt-iter a

                                                          (square b)

                                                          (/ n 2)))

                ((odd? n) (fast-expt-iter (* a b)

                                                          b

                                                          (- n 1)))))

写完代码无一例外的就是测试了:

(fast-expt2 30)

;Value:1073741824

(fast-expt0.123 4)

;Value:.000228886641

【SICP练习】10 练习1.16

标签:sicp   迭代   测试   lambda   square   

原文地址:http://blog.csdn.net/nomasp/article/details/43532645

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!