Skip to content

Commit

Permalink
added: 14-18 execrise
Browse files Browse the repository at this point in the history
  • Loading branch information
asd committed Aug 20, 2020
1 parent 98540a2 commit 8df9f35
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 2 deletions.
3 changes: 1 addition & 2 deletions code/sector1/1_12.rkt
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
(define (pascal row col)
(cond ((> col row)
(error "unvalid col value"))
((or (= col 0) (= row col))
1)
((or (= col 0) (= row col) 1))
(else (+ (pascal (- row 1) (- col 1))
(pascal (- row 1) col)))))
16 changes: 16 additions & 0 deletions code/sector1/1_14.rkt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@



count-change 11
<- ->
count-change(10) count-change(1)
<- ->
cc(5) cc(0)
<- ->
cc(1) cc(4)
->
cc(3)
->
cc(2)
->
cc(1)
7 changes: 7 additions & 0 deletions code/sector1/1_16.rkt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
(define (even? n)
(= (reminder n 2) 0))

(define (make-mod b n a )
(cond ((= n 0) a)
((even? n) (square(fast-expt b (/ n 2) a)) )
(else (* b (fast-expt b (- n 1)) a) )))
11 changes: 11 additions & 0 deletions code/sector1/1_17.rkt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
(define (double n)
n + n)

(define (havle n)
(cond ((even? n) (/ n 2) )))


(define (make-multi a b )
(cond ((= b 0) 0)
((even? b ) (double(make-multi a (havle b ) )) )
(else (+ a (make-multi a (- b 1))) )))
14 changes: 14 additions & 0 deletions code/sector1/1_18.rkt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
(define (multi a b)
(multi-iter a b 0))

(define (multi-iter a b product)
(cond ((= b 0)
product)
((even? b)
(multi-iter (double a)
(halve b)
product))
((odd? b)
(multi-iter a
(- b 1)
(+ a product)))))

0 comments on commit 8df9f35

Please sign in to comment.