即使我使用 bigint,Clojure 中的 StackOverFlow
StackOverFlow in Clojure even when I am using bigint
我正在使用以下代码求阶乘。
(defn factorial [x]
(if (< x 2)
1N
(*' (factorial (- x 1)) x)))
我正在使用 bigint 操作 *'
和 -'
但即使在那之后,当我使用 5500 及更高版本调用它时,我仍然遇到 Whosebug 错误。
WhosebugError clojure.lang.Numbers$LongOps.combine (Numbers.java:419)
user=> (factorial 5300)
WhosebugError clojure.lang.Numbers$LongOps.add (Numbers.java:455)
user=> (factorial 5300)
我看过其他问题,但他们说使用这些操作应该能给我正确答案。那么我在这里缺少什么?
我正在学习 Clojure,所以这是一个学习练习。
我正在使用以下代码求阶乘。
(defn factorial [x]
(if (< x 2)
1N
(*' (factorial (- x 1)) x)))
我正在使用 bigint 操作 *'
和 -'
但即使在那之后,当我使用 5500 及更高版本调用它时,我仍然遇到 Whosebug 错误。
WhosebugError clojure.lang.Numbers$LongOps.combine (Numbers.java:419)
user=> (factorial 5300)
WhosebugError clojure.lang.Numbers$LongOps.add (Numbers.java:455)
user=> (factorial 5300)
我看过其他问题,但他们说使用这些操作应该能给我正确答案。那么我在这里缺少什么?
我正在学习 Clojure,所以这是一个学习练习。