求阶乘。

    1. package main
    2. import (
    3. "fmt"
    4. )
    5. //递归:函数自己调用自己
    6. //5! = 5*4*3*2*1
    7. func f1(n uint64) uint64 {
    8. if n <= 1 {
    9. return 1
    10. } else {
    11. return n * f1(n-1)
    12. }
    13. }
    14. func main() {
    15. fmt.Println(f1(5))
    16. }

    走台阶问题。n个台阶,一次可以走1步,一次也可以走2步,有多少种走法。

    1. package main
    2. import (
    3. "fmt"
    4. )
    5. //走台阶问题
    6. func f2(n uint64) uint64 {
    7. if n == 1 {
    8. return 1
    9. }
    10. if n == 2 {
    11. return 2
    12. }
    13. return f2(n-1) + f2(n-2)
    14. }
    15. func main() {
    16. fmt.Println(f2(10))
    17. }

    斐波那契数列:0 1 1 2 3 5 8 13 21 34

    1. package main
    2. import "fmt"
    3. func fibonacci(n int) int {
    4. if n < 2 {
    5. return n
    6. }
    7. return fibonacci(n-2) + fibonacci(n-1)
    8. }
    9. func main() {
    10. var i int
    11. for i = 0; i < 10; i++ {
    12. fmt.Printf("%d\t", fibonacci(i))
    13. }
    14. fmt.Println()
    15. }