Skip to content

Commit 7b546c0

Browse files
committed
Add 1.15 to 1.19
1 parent ce9a86f commit 7b546c0

File tree

5 files changed

+40
-3
lines changed

5 files changed

+40
-3
lines changed

1.2-ProceduresandtheProcessesTheyGenerate/ex-1.15/anabastos.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
(p (sine (/ angle 3.0)))))
88

99
; a) 7 Vezes
10-
; b) É logaritmico log3(n) pois p é chamado somente até quando a divisao do angulo esta acima de 0.1.
10+
; b) É logaritmico log3(n) pois p é chamado somente até quando a divisao do angulo esta acima de 0.1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
(defn square [x] (* x x))
2+
3+
(defn expt [b n a]
4+
(cond (= n 0) a
5+
(even? n) (square (expt b (/ n 2) a))
6+
:else (expt b (- n 1) (* b a))))
7+

1.2-ProceduresandtheProcessesTheyGenerate/ex-1.17/anabastos.clj

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
(cond (= b 0) 0
99
(= b 1) a
1010
(even? b) (double (fast-mult a (halve b)))
11-
:else + a (fast-mult a (- b 1))))
11+
:else + (a (fast-mult a (- b 1)))))
1212

13-
; (fast-mult 4 2) 8
13+
; (fast-mult 4 2) 8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
(defn double [x]
2+
(* x 2))
3+
4+
(defn halve [x]
5+
(/ x 2))
6+
7+
(defn square [x] (* x x))
8+
9+
(defn fast-mult [a b c]
10+
(cond (= b 0) c
11+
(even? b) (fast-mult a (halve b) (double c))
12+
(odd? b) (fast-mult a (- b 1) (+ a c))))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
(defn square [x] (* x x))
2+
3+
(defn fib-iter [a b p q count]
4+
(cond (= count 0) b
5+
(even? count) (fib-iter a
6+
b
7+
(+ (square p) (square q))
8+
(+ (square (* p q)) (square q))
9+
(/ count 2))
10+
:else (fib-iter (+ (* b q) (* a q) (* a p))
11+
(+ (* b p) (* a q))
12+
p
13+
q
14+
(- count 1))))
15+
16+
(defn fib [n]
17+
(fib-iter 1 0 0 1 n))
18+

0 commit comments

Comments
 (0)