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 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 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..22218c1 --- /dev/null +++ b/2 - Recursion/3 - Pascal's Triangle/fabriciorby.clj @@ -0,0 +1,8 @@ +(defn pascal-triangle + ([n] (pascal-triangle n [1])) + ([n acc] + (when (> n 0) + (println (apply str (interpose " " acc))) + (recur (dec n) (mapv + (conj acc 0) (rseq (conj acc 0))))))) + +(pascal-triangle (read-string (read-line))) \ No newline at end of file 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 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