From 5e604fff2c59213c8f7ec4b598b9282bf50fe166 Mon Sep 17 00:00:00 2001 From: fabriciorby Date: Sat, 14 Sep 2024 01:27:53 +0200 Subject: [PATCH 1/6] gcd in clj --- 2 - Recursion/1 - Computing the GCD/fabriciorby.clj | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 2 - Recursion/1 - Computing the GCD/fabriciorby.clj diff --git a/2 - Recursion/1 - Computing the GCD/fabriciorby.clj b/2 - Recursion/1 - Computing the GCD/fabriciorby.clj new file mode 100644 index 0000000..ef6ba88 --- /dev/null +++ b/2 - Recursion/1 - Computing the GCD/fabriciorby.clj @@ -0,0 +1,7 @@ +(defn gcd [x y] + (cond + (zero? (rem y x)) x + (> x y) (recur (- x y) y) + :else (recur (rem y x) x))) + +(println (apply gcd (map read-string (re-seq #"\d+" (read-line))))) \ No newline at end of file From 1156c0cdbb9eaef369433885899b084241d0ec90 Mon Sep 17 00:00:00 2001 From: fabriciorby Date: Sat, 14 Sep 2024 01:28:10 +0200 Subject: [PATCH 2/6] fibonacci in clj --- 2 - Recursion/2 - Fibonacci Numbers/fabriciorby.clj | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 2 - Recursion/2 - Fibonacci Numbers/fabriciorby.clj diff --git a/2 - Recursion/2 - Fibonacci Numbers/fabriciorby.clj b/2 - Recursion/2 - Fibonacci Numbers/fabriciorby.clj new file mode 100644 index 0000000..00e2993 --- /dev/null +++ b/2 - Recursion/2 - Fibonacci Numbers/fabriciorby.clj @@ -0,0 +1,10 @@ +(defn fib + ([n] (fib n 0 1)) + ([n a b] + (case n + 0 a + 1 a + 2 b + (recur (dec n) b (+ a b))))) + +(println (fib (read-string (read-line)))) \ No newline at end of file From 3ceedf7043e4c33bd13ae34264b9d0e3e814af7b Mon Sep 17 00:00:00 2001 From: fabriciorby Date: Sat, 14 Sep 2024 02:57:43 +0200 Subject: [PATCH 3/6] pascal triangle in clj --- 2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj diff --git a/2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj b/2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj new file mode 100644 index 0000000..b79394f --- /dev/null +++ b/2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj @@ -0,0 +1,10 @@ +(defn pascal + ([n] (pascal n [])) + ([n acc] + (cond + (= 0 n) (mapv #(apply str (interpose " " %)) acc) + (= 0 (count acc)) (recur (dec n) (conj acc [1])) + :else (recur (dec n) (conj acc (into [] cat [[1] (mapv #(apply + %) (partition 2 1 (last acc))) [1]]))) + ))) + +(run! println (pascal (read-string (read-line)))) \ No newline at end of file From b81f9193a01586341119b09213f6234af15be43b Mon Sep 17 00:00:00 2001 From: fabriciorby Date: Sat, 14 Sep 2024 14:26:12 +0200 Subject: [PATCH 4/6] a better pascal triangle in clj --- .../3 - Pascal's Triangle/fabriciorby.clj | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj b/2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj index b79394f..22218c1 100644 --- a/2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj +++ b/2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj @@ -1,10 +1,8 @@ -(defn pascal - ([n] (pascal n [])) +(defn pascal-triangle + ([n] (pascal-triangle n [1])) ([n acc] - (cond - (= 0 n) (mapv #(apply str (interpose " " %)) acc) - (= 0 (count acc)) (recur (dec n) (conj acc [1])) - :else (recur (dec n) (conj acc (into [] cat [[1] (mapv #(apply + %) (partition 2 1 (last acc))) [1]]))) - ))) + (when (> n 0) + (println (apply str (interpose " " acc))) + (recur (dec n) (mapv + (conj acc 0) (rseq (conj acc 0))))))) -(run! println (pascal (read-string (read-line)))) \ No newline at end of file +(pascal-triangle (read-string (read-line))) \ No newline at end of file From ae6be4a1995f71ba088ac53b203a10424af7baf4 Mon Sep 17 00:00:00 2001 From: fabriciorby Date: Sat, 14 Sep 2024 15:06:31 +0200 Subject: [PATCH 5/6] string mingling in clj --- 2 - Recursion/5 - String Mingling/fabriciorby.clj | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 2 - Recursion/5 - String Mingling/fabriciorby.clj diff --git a/2 - Recursion/5 - String Mingling/fabriciorby.clj b/2 - Recursion/5 - String Mingling/fabriciorby.clj new file mode 100644 index 0000000..2af059d --- /dev/null +++ b/2 - Recursion/5 - String Mingling/fabriciorby.clj @@ -0,0 +1,3 @@ +(->> (interleave (read-line) (read-line)) + (apply str) + (println)) \ No newline at end of file From 96a19b7876caa38ef6244fb5d6a94b7dd1a55f2a Mon Sep 17 00:00:00 2001 From: fabriciorby Date: Sat, 14 Sep 2024 15:53:23 +0200 Subject: [PATCH 6/6] string-o-permute in clj --- 2 - Recursion/6 - String-o-Permute/fabriciorby.clj | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 2 - Recursion/6 - String-o-Permute/fabriciorby.clj diff --git a/2 - Recursion/6 - String-o-Permute/fabriciorby.clj b/2 - Recursion/6 - String-o-Permute/fabriciorby.clj new file mode 100644 index 0000000..fec265e --- /dev/null +++ b/2 - Recursion/6 - String-o-Permute/fabriciorby.clj @@ -0,0 +1,7 @@ +(defn o-permute [string] (->> (partition 2 2 string) + (mapcat reverse) + (apply str) + (println))) + +(->> (repeatedly (read-string (read-line)) #(o-permute (read-line))) + (doall)) \ No newline at end of file