zoukankan      html  css  js  c++  java
  • golang闭包,传统斐波那契

    package main

    import (
        "fmt"
    )

    func main() {
        f := fibonacci()
        for i := 0; i < 10; i++ {
            fmt.Printf("%d:%d ", i, f())
        }
    }

    // func fibonaci(n int) (ret int) {
    //     if n <= 1 {
    //         ret = 1
    //     } else {
    //         ret = fibonaci(n-1) + fibonaci(n-2)
    //     }
    //     return ret
    // }

    func fibonacci() func() int {
        f0, f1, f2 := 1, 1, 0
        index := -1
        return func() int {
            index++
            if index == 0 {
                return 1
            } else if index == 1 {
                return 1
            } else {
                f2 = f0 + f1
                f0 = f1
                f1 = f2
                return f2
            }
        }
    }

  • 相关阅读:
    C++ 四种cast 用法
    Wannafly挑战赛1 B Xorto
    python里的闭包
    编译器对类的编译顺序
    class和struct
    typedef类型别名
    decltype类型指示符
    左值和右值
    const限定符
    hdu5678 树上第k小
  • 原文地址:https://www.cnblogs.com/zhangym/p/7060718.html
Copyright © 2011-2022 走看看