Scala阶乘方法给我错误的结果,为什么?

用户名

嗨,我正在研究一些有关scala的示例。有一种称为乘积的方法,它将乘以给定数字范围内给定函数的所有结果。

例如。product(somefunction:Int => Int)(低边界:Int,高边界:Int)

以下将给定范围内的所有阶乘结果相乘:

def product(f: Int => Int)(a: Int, b: Int): Int = {
   if (a > b) 1
   else f(a) * product(f)(a + 1, b)
}

def fact(x: Int, y: Int) = product(sFact)(x, y)

def sFact(c: Int): Int = if (c == 0) 1 else c * sFact(c - 1)

fact(3, 7)

fact(3,7)的结果是(-错误!):

 //> res0: Int = -1718845440

谁能告诉我为什么?

科尔玛

结果大于2 31 -1(Int.MaxValue),因此发生数字溢出。你要做的所有的计算模某个值,或更换IntLongBigInt随处可见。但是,Long如果参数变大(Long.MaxValue为2 63 -1 == 9223372036854775807),计算也将开始溢出

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的递归阶乘方法总是返回0?

来自分类Dev

hadoop -version给我错误的结果为什么?Hadoop 1.2.1

来自分类Dev

hadoop -version给我错误的结果为什么?Hadoop 1.2.1

来自分类Dev

Scala阶乘方法(即“!”):删除点运算符?

来自分类Dev

为什么Nokogiri给我多个结果?

来自分类Dev

为什么这个阶乘函数给出错误的结果?

来自分类Dev

为什么BeautifulSoup给我错误的文字?

来自分类Dev

为什么给我细分错误?

来自分类Dev

为什么给我细分错误?

来自分类Dev

为什么给我细分错误?

来自分类Dev

为什么Parse_Dates在Python中给我错误的结果?

来自分类Dev

为什么Scala 2.11.2用科学计数法给我浮点数的编译错误?

来自分类Dev

如何使我的阶乘方法与小数一起使用?(伽玛)

来自分类Dev

为什么FLOAT给我比DECIMAL更准确的结果?

来自分类Dev

Perl:为什么for和foreach给我不同的结果?

来自分类Dev

为什么optim()总是给我相同的结果?

来自分类Dev

为什么“ $ Namefile *”会给我这样的结果?

来自分类Dev

为什么“ cgps -s”没有给我任何结果?

来自分类Dev

Perl:为什么for和foreach给我不同的结果?

来自分类Dev

为什么 cv::format 没有给我预期的结果?

来自分类Dev

为什么Valgrind在错误的位置给我错误?

来自分类Dev

为什么我的SKAudioNode给我一个错误?

来自分类Dev

为什么我的简单C ++程序给我错误。

来自分类Dev

createFromFormat 给我错误的结果

来自分类Dev

为什么我的findMax方法给我数组的第一个元素而不是最大元素的结果?

来自分类Dev

为什么jsfiddle给我错误“ SyntaxError:Unexpected token:”?

来自分类Dev

为什么interp函数给我错误?

来自分类Dev

为什么列表理解给我语法错误?

来自分类Dev

为什么这if语句给我一个错误

Related 相关文章

  1. 1

    为什么我的递归阶乘方法总是返回0?

  2. 2

    hadoop -version给我错误的结果为什么?Hadoop 1.2.1

  3. 3

    hadoop -version给我错误的结果为什么?Hadoop 1.2.1

  4. 4

    Scala阶乘方法(即“!”):删除点运算符?

  5. 5

    为什么Nokogiri给我多个结果?

  6. 6

    为什么这个阶乘函数给出错误的结果?

  7. 7

    为什么BeautifulSoup给我错误的文字?

  8. 8

    为什么给我细分错误?

  9. 9

    为什么给我细分错误?

  10. 10

    为什么给我细分错误?

  11. 11

    为什么Parse_Dates在Python中给我错误的结果?

  12. 12

    为什么Scala 2.11.2用科学计数法给我浮点数的编译错误?

  13. 13

    如何使我的阶乘方法与小数一起使用?(伽玛)

  14. 14

    为什么FLOAT给我比DECIMAL更准确的结果?

  15. 15

    Perl:为什么for和foreach给我不同的结果?

  16. 16

    为什么optim()总是给我相同的结果?

  17. 17

    为什么“ $ Namefile *”会给我这样的结果?

  18. 18

    为什么“ cgps -s”没有给我任何结果?

  19. 19

    Perl:为什么for和foreach给我不同的结果?

  20. 20

    为什么 cv::format 没有给我预期的结果?

  21. 21

    为什么Valgrind在错误的位置给我错误?

  22. 22

    为什么我的SKAudioNode给我一个错误?

  23. 23

    为什么我的简单C ++程序给我错误。

  24. 24

    createFromFormat 给我错误的结果

  25. 25

    为什么我的findMax方法给我数组的第一个元素而不是最大元素的结果?

  26. 26

    为什么jsfiddle给我错误“ SyntaxError:Unexpected token:”?

  27. 27

    为什么interp函数给我错误?

  28. 28

    为什么列表理解给我语法错误?

  29. 29

    为什么这if语句给我一个错误

热门标签

归档