您的位置:首页 > 其它

【SICP练习】10 练习1.16

2015-09-08 00:00 169 查看


练习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

版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息