diff options
| author | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2021-11-05 16:33:38 -0700 |
|---|---|---|
| committer | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2021-11-06 13:00:44 -0700 |
| commit | 401f7d3d4e03125f247ff7246d78ed81415e327d (patch) | |
| tree | 992cda5e96fec263c44489f57189d76a50b06a16 | |
| parent | a3d286ab553679fdb1405ee8ffc7e4b8761823a6 (diff) | |
| download | perlweeklychallenge-club-401f7d3d4e03125f247ff7246d78ed81415e327d.tar.gz perlweeklychallenge-club-401f7d3d4e03125f247ff7246d78ed81415e327d.tar.bz2 perlweeklychallenge-club-401f7d3d4e03125f247ff7246d78ed81415e327d.zip | |
Ch137 (Clojure): Task 2
| -rw-r--r-- | challenge-137/tyler-wardhaugh/clojure/src/tw/weekly/c137/t2.clj | 22 | ||||
| -rw-r--r-- | challenge-137/tyler-wardhaugh/clojure/test/tw/weekly/c137/t2_test.clj | 12 |
2 files changed, 30 insertions, 4 deletions
diff --git a/challenge-137/tyler-wardhaugh/clojure/src/tw/weekly/c137/t2.clj b/challenge-137/tyler-wardhaugh/clojure/src/tw/weekly/c137/t2.clj index 8b7cf78fc2..8f288e825c 100644 --- a/challenge-137/tyler-wardhaugh/clojure/src/tw/weekly/c137/t2.clj +++ b/challenge-137/tyler-wardhaugh/clojure/src/tw/weekly/c137/t2.clj @@ -1,13 +1,31 @@ (ns tw.weekly.c137.t2 - (:require [clojure.edn :as edn])) + (:require [clojure.edn :as edn] + [clojure.string :as str])) ;;; ; Task description for TASK #2 › Lychrel Number ;;; (def DEFAULT-INPUT [56]) +(def MAX-TIMES 500) +(def MAX-NUM 10000000) + +(defn flip + [n] + (Integer/parseInt (-> n str str/reverse))) + +(defn lychrel + [n] + (loop [n n + times 1] + (cond + (>= times MAX-TIMES) 1 + (>= n MAX-NUM) 1 + (= n (flip n)) 0 + :else (recur (+ n (flip n)) (inc times))))) (defn -main "Run Task 2 with a given input N, defaulting to the first example from the task description." [& args] - (let [[N] (or (some->> args (map edn/read-string)) DEFAULT-INPUT)])) + (let [[N] (or (some->> args (map edn/read-string)) DEFAULT-INPUT)] + (println (if (lychrel N) 1 0)))) diff --git a/challenge-137/tyler-wardhaugh/clojure/test/tw/weekly/c137/t2_test.clj b/challenge-137/tyler-wardhaugh/clojure/test/tw/weekly/c137/t2_test.clj index 04d601a7d2..d61252832a 100644 --- a/challenge-137/tyler-wardhaugh/clojure/test/tw/weekly/c137/t2_test.clj +++ b/challenge-137/tyler-wardhaugh/clojure/test/tw/weekly/c137/t2_test.clj @@ -1,6 +1,14 @@ (ns tw.weekly.c137.t2-test (:require [clojure.test :refer [deftest is testing]] - [tw.weekly.c137.t2 :refer []])) + [tw.weekly.c137.t2 :refer [lychrel]])) (deftest examples - (testing "Examples from description")) + (testing "Examples from description" + (is (= 0 (lychrel 56))) + (is (= 0 (lychrel 57))) + (is (= 0 (lychrel 59))))) + +(deftest maximum + (testing "Numbers that exceed our ceiling" + (is (= 1 (lychrel 998))) + (is (= 1 (lychrel 196))))) |
