Scala阶乘函数的答案不是它应该是什么

Scala阶乘函数的答案不是它应该是什么,scala,recursion,factorial,Scala,Recursion,Factorial,我正在为考试而学习,我不明白为什么在调用函数4时会得到24分的结果 scala> def fact(n:Int):Int = if (n<2) 1 else n*fact(n-1) fact: (n: Int)Int scala> fact(4) res0: Int = 24 非常感谢您的帮助。在我看来,您编写的代码做的事情完全正确。定义一些测试用例总是一个好主意-输入->预期输出: 0!=一, 1!=一, 2!=2*1! = 二, 3!=3*2! = 六, 4!=4*3!

我正在为考试而学习,我不明白为什么在调用函数4时会得到24分的结果

scala> def fact(n:Int):Int = if (n<2) 1 else n*fact(n-1)
fact: (n: Int)Int

scala> fact(4)
res0: Int = 24

非常感谢您的帮助。

在我看来,您编写的代码做的事情完全正确。定义一些测试用例总是一个好主意-输入->预期输出:

0!=一,

1!=一,

2!=2*1! = 二,

3!=3*2! = 六,


4!=4*3! = 4*6=24

不,根据这个函数,它应该是24。你能解释一下为什么吗@smac89
if(4*3*2*1=24
我投票结束这个问题,因为它完全基于海报的概念错误。
(4) * fact(4-1) = 12 ?