我有两种使用 Scala 查找阶乘的方法。我想知道与尾递归方式相比,非尾递归方式慢了多少。
// factorial non-tail recursive
def fact1(n: Int): Int =
if (n==0) 1
else n*fact(n-1)
// factorial tail recursive
def fact(n: Int): Int = {
def loop(acc: Int, n:Int): Int =
if (n==0) acc
else loop(acc*n, n-1)
loop(1, n)
}
// a1 = Time.now
fact1(100)
// a2 = Time.now
// a2-a1
// b1 = Time.now
fact(100)
// b2 = Time.now
// b2-b1
我刚刚为 Time.now 编写了 Ruby 代码。基本上,您将如何Time.now
在 Scala 中编写类似的代码?