這篇文章主要介紹了Go語(yǔ)言實(shí)現(xiàn)Fibonacci數(shù)列的方法,實(shí)例分析了使用遞歸和不使用遞歸兩種技巧,并對(duì)算法的效率進(jìn)行了對(duì)比,需要的朋友可以參考下
本文實(shí)例講述了Go語(yǔ)言實(shí)現(xiàn)Fibonacci數(shù)列的方法。分享給大家供大家參考。具體如下:
Fibonacci數(shù)列:1,1,2,3,5,8,13,21,,, (即從第三項(xiàng)起,每一項(xiàng)的值都等于前兩項(xiàng)之后)
第一種,使用遞歸:
復(fù)制代碼代碼如下:
func fibonacci(a int) int {
if a == 1 || a == 2 {
return 1
}
return fibonacci(a-1) + fibonacci(a-2)
}
第二種,不使用遞歸:
復(fù)制代碼代碼如下:
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
}
經(jīng)過(guò)檢驗(yàn),使用非遞歸算法的效率要遠(yuǎn)遠(yuǎn)高于遞歸算法。
希望本文所述對(duì)大家的Go語(yǔ)言程序設(shè)計(jì)有所幫助。