大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。
斐波那契数列是一个满足
的数列
数据范围:
要求:空间复杂度
,时间复杂度
,本题也有时间复杂度
的解法
仅输入一个正整数 n。
输出斐波那契数列中第 n 个数。
4
3
根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为3。
1
1
2
1
package main
import "fmt"
func main() {
var n uint8
_, _ = fmt.Scan(&n)
//var num = 1
//var l1 = 1
//var l2 = 1
//
//for n > 0 {
// if n < 3 {
// break
// } else {
// num = l1 + l2
// l1 = l2
// l2 = num
// n--
// }
// fmt.Printf("{%d:%d},\n",42-n,num)
//}
m := map[uint8]int32{
1: 1,
2: 1,
3: 2,
4: 3,
5: 5,
6: 8,
7: 13,
8: 21,
9: 34,
10: 55,
11: 89,
12: 144,
13: 233,
14: 377,
15: 610,
16: 987,
17: 1597,
18: 2584,
19: 4181,
20: 6765,
21: 10946,
22: 17711,
23: 28657,
24: 46368,
25: 75025,
26: 121393,
27: 196418,
28: 317811,
29: 514229,
30: 832040,
31: 1346269,
32: 2178309,
33: 3524578,
34: 5702887,
35: 9227465,
36: 14930352,
37: 24157817,
38: 39088169,
39: 63245986,
40: 102334155}
fmt.Println(m[n])
}