golang动画等待计算菲波那契结果

Posted janeysj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang动画等待计算菲波那契结果相关的知识,希望对你有一定的参考价值。

一个小玩意,main goroutine将计算菲波那契数列的第45个元素值。由于计算函数使用低效的递归,所以会运行相当长时间,在此期间我们想让用户看到一个可见的标识来表明程序依然在正常运行,所以来做一个动画的小图标:

package main

import (
    "fmt"
    "time"
)

func main() {
    go spinner(100 * time.Millisecond)
    const n = 45
    fibN := fib(n) // slow
    fmt.Printf("
Fibonacci(%d) = %d
", n, fibN)
}

func spinner(delay time.Duration) {
    for {
        for _, r := range `-|/` {
            fmt.Printf("
%c Caculating...", r)
            time.Sleep(delay)
        }
    }
}

func fib(x int) int {
    if x < 2 {
        return x
    }
    return fib(x-1) + fib(x-2)
}

以上是关于golang动画等待计算菲波那契结果的主要内容,如果未能解决你的问题,请参考以下文章

递推-练习1--noi1760 菲波那契数列

菲波那契数列的奥秘

递归--练习6--noi1755菲波那契数列

2753:菲波那契数列

1755:菲波那契数列

菲波那契数列是啥