29 lines
411 B
Go
29 lines
411 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
func fibonacci() func() int {
|
|
previous := 0
|
|
current := 0
|
|
result := 0
|
|
return func() int {
|
|
if current == 0 {
|
|
current = 1
|
|
} else if current == 1 && result == 0 {
|
|
result = current
|
|
} else {
|
|
result = previous + current
|
|
previous = current
|
|
current = result
|
|
}
|
|
return result
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
f := fibonacci()
|
|
for i := 0; i < 10; i++ {
|
|
fmt.Println(f())
|
|
}
|
|
}
|