SICP 2.5 习题答案

通过数学的方法可以解决,假设乘积n不是偶数,那a肯定是0。

(define (power x n r)
(if (< n 1) r
(power x (- n 1) (* r x))))
(define (cons a b)
(* (power 2 a 1) (power 3 b 1)))
(define (car n)
(define (car-iter x counter)
(if (not(even? x)) counter
(car-iter (/ x 2) (+ counter 1))))
(car-iter n 0))
(define (cdr n)
(define (cdr-iter x counter)
(cond ((= x 1) counter)
((even? x) (cdr-iter (/ x 2) counter))
(else (cdr-iter (/ x 3) (+ counter 1)))))
(cdr-iter n 0))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值