diff options
| author | E7-87-83 <fungcheokyin@gmail.com> | 2024-07-19 06:28:47 +0800 |
|---|---|---|
| committer | E7-87-83 <fungcheokyin@gmail.com> | 2024-07-19 06:28:47 +0800 |
| commit | cbb4830d700aae2157fd59d506c0807a0c14f8dc (patch) | |
| tree | f119c671b6ff1f2ae1f76707dd713afa246ce3ec /challenge-258 | |
| parent | f95090c2d9bea2620b02e67836e7b5d8cf75f243 (diff) | |
| download | perlweeklychallenge-club-cbb4830d700aae2157fd59d506c0807a0c14f8dc.tar.gz perlweeklychallenge-club-cbb4830d700aae2157fd59d506c0807a0c14f8dc.tar.bz2 perlweeklychallenge-club-cbb4830d700aae2157fd59d506c0807a0c14f8dc.zip | |
Perl and Lisp Solutions
Diffstat (limited to 'challenge-258')
| -rw-r--r-- | challenge-258/cheok-yin-fung/lisp/ch-1.lsp | 8 | ||||
| -rw-r--r-- | challenge-258/cheok-yin-fung/lisp/ch-2.lsp | 26 |
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-258/cheok-yin-fung/lisp/ch-1.lsp b/challenge-258/cheok-yin-fung/lisp/ch-1.lsp new file mode 100644 index 0000000000..e3249c61a2 --- /dev/null +++ b/challenge-258/cheok-yin-fung/lisp/ch-1.lsp @@ -0,0 +1,8 @@ +; The Weekly Challenge 258 +; Task 1 Count Even Digits Number + +(defun cedn (lst) (reduce #'+ (mapcar (lambda (r) (mod (+ 1 (length (write-to-string r))) 2)) lst))) + +;> (cedn '(10 1 111 24 1000)) +;3 + diff --git a/challenge-258/cheok-yin-fung/lisp/ch-2.lsp b/challenge-258/cheok-yin-fung/lisp/ch-2.lsp new file mode 100644 index 0000000000..b29b471ff4 --- /dev/null +++ b/challenge-258/cheok-yin-fung/lisp/ch-2.lsp @@ -0,0 +1,26 @@ +; The Weekly Challenge 258 +; Task 2 Sum of Values + +(defun bits (n) (setq acc nil) + (loop + (setq acc (cons (mod n 2) acc)) + (setq n (ash n -1)) + (when (= n 0) (return acc)))) + +(defun one-bits (n) + (reduce #'+ (bits n))) + +(defun sov (lst k) + (setq sum 0) + (dotimes (i (length lst)) + (cond + ((equalp k (one-bits i)) (print i) (setq sum (+ (nth i lst) sum))))) +sum) + +; > (sov '(2 5 9 11 3) 1) +; 17 +; >(sov '(2 5 9 11 3) 2) +; 11 +; > (sov '(2 5 9 11 3) 0) +; 2 + |
