求阶乘。
package mainimport ("fmt")//递归:函数自己调用自己//5! = 5*4*3*2*1func f1(n uint64) uint64 {if n <= 1 {return 1} else {return n * f1(n-1)}}func main() {fmt.Println(f1(5))}
走台阶问题。n个台阶,一次可以走1步,一次也可以走2步,有多少种走法。
package mainimport ("fmt")//走台阶问题func f2(n uint64) uint64 {if n == 1 {return 1}if n == 2 {return 2}return f2(n-1) + f2(n-2)}func main() {fmt.Println(f2(10))}
斐波那契数列:0 1 1 2 3 5 8 13 21 34
package mainimport "fmt"func fibonacci(n int) int {if n < 2 {return n}return fibonacci(n-2) + fibonacci(n-1)}func main() {var i intfor i = 0; i < 10; i++ {fmt.Printf("%d\t", fibonacci(i))}fmt.Println()}
