标签:csharp har 本质 break 性能分析 nbsp for a+b arp
1 前言
斐波拉契数列有递归写法和尾递归和迭代写法。
2 代码
//recursion
func fib(n int) int{
if n < 2{
return n
}else{
return fib(n-1) + fib(n-2)
}
}
func fibcore(n int) (int,int){
if n < 2{
return 0,n
}else{
a,b := fibcore(n-1)
return b,a+b
}
}
//tail recursion
func fib2(n int)(int){
_,b:= fibcore(n)
return b
}
//iteration
func fib3(max int)(int){
n:=0
a,b:=0,1
for {
if n < max{
a,b = b,a+b
n ++
}else{
break
}
}
return b
}
3 性能分析
测试第40个的数列值
递归

尾递归(参数是40,100都大约是这个时间量)

迭代(参数是40,100都大约是这个时间量)

说明:本质上尾递归就是迭代,只是写法略有差别
标签:csharp har 本质 break 性能分析 nbsp for a+b arp
原文地址:https://www.cnblogs.com/fanbi/p/10024788.html