美文网首页
go基于内存缓存实现菲波那切数列

go基于内存缓存实现菲波那切数列

作者: R_X | 来源:发表于2018-06-14 18:45 被阅读0次
    package main
    
    import (
        "fmt"
        "time"
    )
    
    const LIM = 41
    
    var fibs [LIM]uint64
    
    func main() {
        var result uint64 = 0
        start := time.Now()
        for i := 0; i < LIM; i++ {
            result = fibonacci(i)
            fmt.Printf("fibonacci(%d) is: %d\n", i, result)
        }
        end := time.Now()
        delta := end.Sub(start)
        fmt.Printf("longCalculation took this amount of time: %s\n", delta)
    }
    func fibonacci(n int) (res uint64) {
        // memoization: check if fibonacci(n) is already known in array:
        if fibs[n] != 0 {
            res = fibs[n]
            return
        }
        if n <= 1 {
            res = 1
        } else {
            res = fibonacci(n-1) + fibonacci(n-2)
        }
        fibs[n] = res
        return
    }
    

    相关文章

      网友评论

          本文标题:go基于内存缓存实现菲波那切数列

          本文链接:https://www.haomeiwen.com/subject/orfueftx.html