(define (fast-expt b n)
(expt-iter b n 1))
(define (expt-iter b n a)
(cond ((= n 0)
a)
((even? n)
(expt-iter (square b)
(/ n 2)
a))
((odd? n)
(expt-iter b
(- n 1)
(* b a)))))
(define (square x)
(* x x))
(fast-expt 2 200000)
本文介绍了一种使用递归迭代方式实现快速幂运算的方法。通过定义过程expt-iterbn,可以高效地计算出b^n*a的值。对于偶数次幂采用平方运算减少递归层数,对于奇数次幂则递归计算较低次幂再乘以基数。
4334

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



