斐波那契数列n项的值。(递归和非递归算法Golang实现)

递归实现:

func f(num int) int {
	if num == 1 || num == 2 {
		return 1
	}
	return f(num-1) + f(num-2)
}

  

非递归实现:

func fbnqList2(num int) int {
	if num == 1 || num == 2 {
		return 1
	}
	pre1 := 1
	pre2 := 1
	for i := 3; i < num; i++ {
		tmp := pre1 + pre2
		pre1 = pre2
		pre2 = tmp
	}
	return pre1 + pre2
}