Structure and Interpretation of Computer Programs
iteye_14843
这个作者很懒,什么都没留下…
展开
-
sicp练习1.21用smallest-divisor寻找最小因子
(define (square x) (* x x)) (define (smallest-divisor n) (find-divisor n 2)) (define (find-divisor n test-divisor) (cond ((> (square test-divisor) n) n) ((divides? test-d...原创 2011-05-22 14:36:43 · 175 阅读 · 0 评论 -
sicp练习 1.22
(define (square x) (* x x)) (define (smallest-divisor n) (find-divisor n 2)) (define (find-divisor n test-divisor) (cond ((> (square test-divisor) n) n) ((divides? test-d...2011-05-27 22:33:51 · 144 阅读 · 0 评论 -
sicp练习1.12 帕斯卡三角(杨辉三角)
杨辉三角以前在学习c语言时候,用循环很容易实现。由于刚刚接触函数式语言,递归和迭代方式实现循环还没深入我心。下意思的想用链表来实现,但发现自己对scheme的链表操作太不熟悉,总会出现这样那样子的无法自我解释的问题。最后参考了@dennis_zane的pascal实现,dennis_zane是把杨辉三角左对齐,然后根据坐标之间的关系实现:(pascal x y) ,其中x,y为坐标,(pasca...2011-05-13 08:21:54 · 263 阅读 · 0 评论 -
快速求幂 sicp练习1.16
(define (even? n) (= (remainder n 2) 0)) (define (fast-expt-iter result b n) (cond ((= n 0) 1) ((= n 1) (* result b)) ((even? n) (fast-expt-iter result (* b b) (/ n 2))) ...原创 2011-05-13 13:02:14 · 158 阅读 · 0 评论 -
sicp练习1.17 只有加减法 实现快速求幂
;double的功能是2*n (define (double n) (+ n n)) (double 5) ;*函数的功能是a乘以b (define (* a b) (if (= b 0) 0 (+ a (* a (- b 1))))) (* 3 4) ;havle-iter函数的功能是通过迭代获得n的一半的值,guess是...2011-05-13 20:37:52 · 144 阅读 · 0 评论 -
sicp练习1.18 基于加法、加倍和折半运算求两个整数之乘积
;double的功能是2*n (define (double n) (+ n n)) (double 5) ;havle-iter函数的功能是通过迭代获得n的一半的值,guess是初始猜测值 (define (havle-iter guess n) (cond ((not (integer? n)) (display "error: 原因havle函数的参数是整数...原创 2011-05-13 23:32:27 · 170 阅读 · 0 评论 -
sicp练习1.20 gcd过程 应用序 正则序 remainder次数
(define (gcd a b remainder-count) (if(= b 0) (begin (display "\nremainder count: ") (display remainder-count) (display "\n gcd result:") (display ...原创 2011-05-17 09:41:04 · 184 阅读 · 0 评论