aboutsummaryrefslogtreecommitdiff
path: root/challenge-258
diff options
context:
space:
mode:
authorE7-87-83 <fungcheokyin@gmail.com>2024-07-19 06:28:47 +0800
committerE7-87-83 <fungcheokyin@gmail.com>2024-07-19 06:28:47 +0800
commitcbb4830d700aae2157fd59d506c0807a0c14f8dc (patch)
treef119c671b6ff1f2ae1f76707dd713afa246ce3ec /challenge-258
parentf95090c2d9bea2620b02e67836e7b5d8cf75f243 (diff)
downloadperlweeklychallenge-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.lsp8
-rw-r--r--challenge-258/cheok-yin-fung/lisp/ch-2.lsp26
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
+