Contents

fibonacci数列: 1 1 2 3 5 8 13 21…

今天看到了fibonacci的非递归写法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
func fibonacci(n int) int {
a, b := 0, 1
for i := 2; i < n; i++ {
a, b = b, a+b
}
return a + b
}

func fibonacci(n int) int {
a, b := 0, 1
for i := 2; i < n; i++ {
// 有的编程语言不支持上面的那种a, b = b, a+b写法
sum := a + b
a = b
b = sum
}
return a + b
}

递归写法

1
2
3
4
5
6
7
func fibonacci(n int) int {
if n == 1 || n == 2 {
return 1
}
return fibonacci(n-1) + fibonacci(n-2)
}

Contents