go語言函數例題

// proctice3.2 project main.go算法

main


import (

    "fmt"

)


func main() {

    //Q10. (5) 變參 1. 編寫函數接受整數類型變參,而且每行打印一個數字

printthem

printthem

fmtPrintln

    /*Q11. (5) 斐波那契1. 斐波那契數列以:1; 1; 2; 3; 5; 8; 13; : : :

     開始。或者用數學形式表達:x1 =1; x2 = 1; xn = xn􀀀1 + xn􀀀2 8n > 2。

    編寫一個函數,接受int 值,並給出這個值獲得的斐波那契數列。*/

_termfibonacci

fmtPrintfterm

    }

fmtPrintln

    /*Q12. (4) Map function map() 函數是一個接受一個函數和一個列表做爲參數的函數。函數

    應用於列表中的每一個元素,而一個新的包含有計算結果的列表被返回。所以:

    map(f(); (a1; a2; : : : ; an􀀀1; an)) = (f(a1); f(a2); : : : ; f(an􀀀1); f(an))

            1. 編寫Go 中的簡單的map() 函數。它能工做於操做整數的函數就能夠了。

            2. 擴展代碼使其工做於字符串列表。*/


m

fi

ii

    }

fmtPrintfMapfm

fmtPrintln

    /*Q13. (3) 最小值和最大值

    1. 編寫一個函數,計算int slice ([]int) 中的最大值。

    2. 編寫一個函數,計算int slice ([]int) 中的最小值。*/

x

fmtPrintfmaxx

fmtPrintfminx

    /*Q14. (5) 冒泡排序 1. 編寫一個針對int 類型的slice 冒泡排序的函數。冒泡排序並非最有效率的,對於n 個元素它的算法複雜度是O(n2)。快速排

      序[27] 是更好的排序算法。*/

n

fmtPrintfn

bubblesortn

fmtPrintfn

    /*Q15. (6) 函數返回一個函數

    1. 編寫一個函數返回另外一個函數,返回的函數的做用是對一個整數+2。函數的名稱叫

        作plusTwo。而後能夠像下面這樣使用:

        p := plusTwo()

        fmt.Printf("%v\n", p(2))

        應該打印4。參閱第36 頁的第回調節瞭解更多關於這個的內容。

    2. 使1 中的函數更加通用化,建立一個plusX(x) 函數,返回一個函數用於對整數加

    上x。*/

p1plusTwo


fmtPrintfp1

    //使用閉包

p2

p3plusXp2

fmtPrintfp3

}

numbers

_dnumbers

fmtPrintfd

    }

}

value

xvalue

xx

nnvaluen

xnxnxn

    }

x

}

fl

jl

kvl

jkfv

    }

j

}

lmax

maxl

_vl

vmax

maxv

        }

    }

    return

}

lmin

minl

_vl

vmin

minv

        }

    }

    return

}

n

iini

jijnj

njni

ninjnjni

            }

        }

    }

}


func plusTwo() func(int) int {

xx

}

X

x

yxy

}
相關文章
相關標籤/搜索