aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Wardhaugh <tyler.wardhaugh@gmail.com>2021-11-05 16:33:38 -0700
committerTyler Wardhaugh <tyler.wardhaugh@gmail.com>2021-11-06 13:00:44 -0700
commit401f7d3d4e03125f247ff7246d78ed81415e327d (patch)
tree992cda5e96fec263c44489f57189d76a50b06a16
parenta3d286ab553679fdb1405ee8ffc7e4b8761823a6 (diff)
downloadperlweeklychallenge-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.clj22
-rw-r--r--challenge-137/tyler-wardhaugh/clojure/test/tw/weekly/c137/t2_test.clj12
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)))))