gpt4 book ai didi

clojure - 我如何解决 Clojure 中的整数溢出?

转载 作者:行者123 更新时间:2023-12-01 16:18:11 27 4
gpt4 key购买 nike

我正在做这个练习。 Pascal's Trapezoid

我的解决方案是:

(fn pascal[initseq]
(let [gen-nextseq (fn [s]
(let [s1 (conj (vec s) 0)
s2 (cons 0 s)]
(map + s1 s2)))]
(cons
initseq
(lazy-seq
(pascal
(gen-nextseq initseq))))))

我通过了前三个测试用例,但没有通过最后一个。

它说“java.lang.ArithmeticException:整数溢出”

那么,Clojure中有大整数吗,或者有更好的解决方法吗?

最佳答案

将 + 更改为 +'。如果结果不适合 long,那将自动为您提供 clojure.lang.BigInt。您还可以在文字上使用 N 后缀来获取 BigInt。

(class (+' 3 2)) ;=> java.lang.Long
(class (+' 300000000000000000000000000000 2)) ;=> clojure.lang.BigInt
(class 3N) ;=> clojure.lang.BigInt

关于clojure - 我如何解决 Clojure 中的整数溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15311448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com