今天忍着蚊子的叮咬,把SICP习题1.16作了。
先写了递归版:
又写了迭代版:
自己定义的函数:
在DrRacket下运行通过。
先写了递归版:
(define power
(lambda (m n)
(cond
((zero? n) 1)
((even? n) (square (power m (/ n 2))))
(else (* m (power m (- n 1)))))))又写了迭代版:
(define power-iter
(lambda (m n product)
(cond
((zero? n) product)
((odd? n) (power-iter m (- n 1) (* m product)))
(else (power-iter (square m) (/ n 2) product)))))自己定义的函数:
(define square
(lambda (m)
(* m m)))在DrRacket下运行通过。
本文详细介绍了如何利用DrRacket环境,通过递归和迭代两种方式解决SICP习题1.16中的幂函数实现问题。包括定义了自定义函数square和power,展示了两种方法的代码实现,并在DrRacket下进行了验证。
4355

被折叠的 条评论
为什么被折叠?



