Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| // Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan. | |
| // License: https://creativecommons.org/licenses/by-nc-sa/4.0/ | |
| // See page 218. | |
| // Spinner displays an animation while computing the 45th Fibonacci number. | |
| package main | |
| import ( | |
| "fmt" | |
| "time" | |
| ) | |
| //!+ | |
| func main() { | |
| go spinner(100 * time.Millisecond) | |
| const n = 45 | |
| fibN := fib(n) // slow | |
| fmt.Printf("\rFibonacci(%d) = %d\n", n, fibN) | |
| } | |
| func spinner(delay time.Duration) { | |
| for { | |
| for _, r := range `-\|/` { | |
| fmt.Printf("\r%c", r) | |
| time.Sleep(delay) | |
| } | |
| } | |
| } | |
| func fib(x int) int { | |
| if x < 2 { | |
| return x | |
| } | |
| return fib(x-1) + fib(x-2) | |
| } | |
| //!- |