File tree 5 files changed +40
-3
lines changed
1.2-ProceduresandtheProcessesTheyGenerate
5 files changed +40
-3
lines changed Original file line number Diff line number Diff line change 7
7
(p (sine (/ angle 3.0 )))))
8
8
9
9
; 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 number Diff line number Diff line change
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
+
Original file line number Diff line number Diff line change 8
8
(cond (= b 0 ) 0
9
9
(= b 1 ) a
10
10
(even? b) (double (fast-mult a (halve b)))
11
- :else + a (fast-mult a (- b 1 ))))
11
+ :else + ( a (fast-mult a (- b 1 ) ))))
12
12
13
- ; (fast-mult 4 2) 8
13
+ ; (fast-mult 4 2) 8
Original file line number Diff line number Diff line change
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 number Diff line number Diff line change
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
+
You can’t perform that action at this time.
0 commit comments