[ create a new paste ] login | about

Project: programmingpraxis
Link: http://programmingpraxis.codepad.org/jSXS5a1q    [ raw code | output | fork ]

programmingpraxis - Scheme, pasted on Jul 13:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; zeckendorf representation
; reddit.com/r/dailyprogrammer challenge #74 easy

(define (fibs n)
  (let loop ((f2 1) (f1 1) (f 2) (fs (list 1 1)))
    (if (< n f) fs (loop f1 f (+ f1 f) (cons f fs)))))

(define (zeck n)
  (let loop ((n n) (fs (fibs n)) (zs (list)))
    (cond ((= (car fs) n) (cons (car fs) zs))
          ((< (car fs) n)
            (loop (- n (car fs)) (cdr fs)
                  (cons (car fs) zs)))
          (else (loop n (cdr fs) zs)))))

(display (zeck 100)) (newline)
(display (zeck (expt 3 15))) (newline)
(time (display (length (zeck (expt 10 100)))))


Output:
1
2
3
(3 8 89)
(2 55 987 6765 46368 196418 1346269 3524578 9227465)
137cpu time: 0 real time: 1 gc time: 0


Create a new paste based on this one


Comments: