小编Stu*_*ent的帖子

Scala尾递归方法存在除法和余数错误

我目前正在通过在 Scala 中编写尾递归来计算两个自然数的二项式系数。但是我的代码在除数方面有问题,整数除以 k 就像我所做的那样,因为这会给你一个非零余数,从而引入舍入错误。那么有人可以帮我解决这个问题吗?

 def binom(n: Int, k: Int): Int = {
    require(0 <= k && k <= n)
    def binomtail(n: Int, k: Int, ac: Int): Int = {
      if (n == k || k == 0) ac
      else binomtail(n - 1, k - 1, (n*ac)/k)
    }
    binomtail(n,k,1)
  }
Run Code Online (Sandbox Code Playgroud)

debugging reminders scala binomial-coefficients divide

1
推荐指数
1
解决办法
858
查看次数