diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2023-03-03 09:33:13 +0100 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2023-03-03 09:33:13 +0100 |
| commit | 0988f106514e61b59f53e7fe3c599e03edcfd47c (patch) | |
| tree | f8faeb9e9d5047828c7c386eb4db363212e52cb6 /coding-exercises/1/chapter116.rkt | |
| parent | b99dd822372b63c994bb97ff9971cfc64c721552 (diff) | |
folder
Diffstat (limited to 'coding-exercises/1/chapter116.rkt')
| -rw-r--r-- | coding-exercises/1/chapter116.rkt | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/coding-exercises/1/chapter116.rkt b/coding-exercises/1/chapter116.rkt new file mode 100644 index 0000000..e4f1e7d --- /dev/null +++ b/coding-exercises/1/chapter116.rkt @@ -0,0 +1,16 @@ +(define (square x) (* x x)) + +(define (fast-expt b n) + (cond ((= n 0) 1) + ((even? n) (square (fast-expt b (/ n 2)))) + (else (* b (fast-expt b (- n 1)))))) + +(define (fie a b n) + (cond ((= n 0) a) + ((even? n) (fie a (square b) (/ n 2))) + (else (fie (* a b) b (- n 1))))) + +(define (fast-expt b n) + (fie 1 b n)) + +(fast-expt 5 5) |
