您的位置:首页 > 其它

【SICP练习】11 练习1.17

2015-02-05 19:14 197 查看


练习1.17

这道题中有2个需要我们自己先写出来的函数double和halve,当然了,这都非常容易实现:

(define(double x)


(+ x x))

(define(halve x)


(/ x 2))

题目中要求我们设计一个类似于fast-expt的求乘积的过程,并且只用对数的步数。

(define(* x y)


(cond ((= y 0) 0)


((even? y) (double (* x (halve y))))


((odd? y) (+ x (* x (- y 1))))))

我们继续来测试一下:

(*2 10)

;Value:20

(*3 60)
;Value: 180
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: