gofibonacci2.go 348 B

1234567891011121314151617181920212223242526272829303132333435
  1. // gofibonacci2.go
  2. package main
  3. import (
  4. "fmt"
  5. )
  6. func fibonacci(n int, c chan int) {
  7. x, y := 1, 1
  8. for i := 0; i < n; i++ {
  9. c <- x
  10. x, y = y, x+y
  11. }
  12. close(c)
  13. }
  14. func main() {
  15. c := make(chan int, 10)
  16. go fibonacci(cap(c), c)
  17. for i := range c {
  18. fmt.Println(i)
  19. }
  20. }
  21. /* Output:
  22. 1
  23. 1
  24. 2
  25. 3
  26. 5
  27. 8
  28. 13
  29. 21
  30. 34
  31. 55
  32. */