十进制到二进制Clojure

我正在按照这个伪代码将十进制递归转换为二进制。

findBinary(decimal)
   if (decimal == 0)
      binary = 0
   else
      binary = decimal % 2 + 10 * (findBinary(decimal / 2)

这是我尝试过的:

(defn binary [n]
  (loop [res 0]
    (if (= n 0)
    res
    (recur (res (* (+ (mod n 2) 10) (binary (quot n 2)))) )
    )
  )
)

但我收到此错误:

ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn  user/binary (form-init9002795692676588773.clj:6)

任何想法如何修复代码以完成任务?

回答

我意识到,这是关于旅程而不是结果。但是要提到的是:Long/toString可以为您提供一个带有各种基数的数字的字符串。

(Long/toString 123 2)
; ? "1111011"


以上是十进制到二进制Clojure的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>