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())
|
||
|
}
|
||
|
}
|