September 19, 2018
Just Juxt #36: The Balance of N (4clojure #115)
A balanced number is one whose component digits have the same sum on the left and right halves of the number.
Write a function which accepts an integer n, and returns true iff n is balanced.
(ns live.test
(:require [cljs.test :refer-macros [deftest is testing run-tests]]))
(defn bal-num [n]
(-> n
str
count
(/ 2)
((juxt take take-last)
(str n))
(->> (map sort) (reduce =))))
(deftest bal-num-test
(is (= true (bal-num 11)))
(is (= true (bal-num 121)))
(is (= false (bal-num 123)))
(is (= true (bal-num 0)))
(is (= false (bal-num 88099)))
(is (= true (bal-num 89098)))
(is (= true (bal-num 89089)))
(is (= (take 20 (filter bal-num (range)))
[0 1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 101])))
(run-tests)