您的位置:首页 > 编程语言 > Go语言

Go语言实现Fibonacci数列的两个算法(使用递归和不使用递归)

2014-03-04 17:04 561 查看
Fibonacci数列:1,1,2,3,5,8,13,21,,, (即从第三项起,每一项的值都等于前两项之后)

第一种,使用递归:

func fibonacci(a int) int {
if a == 1 || a == 2 {
return 1
}
return fibonacci(a-1) + fibonacci(a-2)
}

第二种,不使用递归:
func fibonacci_version2(index int) int {
if index == 1 || index == 2 {
return 1
}
a, b := 1, 1
for i := 3; i <= index; i++ {
a, b = b, (a + b)
}
return a + b
}

经过检验,使用非递归算法的效率要远远高于递归算法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  go语言 递归 Fibonacci