object RecursiveFnb {
def main(args: Array[String]): Unit = {
var count = BigInt(0)
//1 1 2 3 5 ?
println(fbn(30))
println("递归的次数是=" + count)
// 研究下递归求斐波那契数的熟的递归次数增长情况
// 递归的次数是呈现只是增长
def fbn(n: BigInt): BigInt = {
count += 1
if (n == 1 || n == 2) 1
else fbn(n - 1) + fbn(n - 2)
}
}
}
在进行了重复计算时,大家就需要考虑优化问题
优化的原则时时变递归为迭代
object RecursiveFnb {
def main(args: Array[String]): Unit = {
var count = BigInt(0)
//1 1 2 3 5 ?
println(fbn(30))
println("递归的次数是=" + count)
// 研究下递归求斐波那契数的熟的递归次数增长情况
// 递归的次数是呈现只是增长
def fbn(n: BigInt): BigInt = {
count += 1
if (n == 1 || n == 2) 1
else 9 + fbn(n - 2)
}
}
}
数值分析对算法时间复杂度进行优化
scala递归求斐波那契数列
猜你喜欢
转载自blog.csdn.net/qq_44104303/article/details/114869424
今日推荐
周排行