求阶乘。
package main
import (
"fmt"
)
//递归:函数自己调用自己
//5! = 5*4*3*2*1
func 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 main
import (
"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 main
import "fmt"
func fibonacci(n int) int {
if n < 2 {
return n
}
return fibonacci(n-2) + fibonacci(n-1)
}
func main() {
var i int
for i = 0; i < 10; i++ {
fmt.Printf("%d\t", fibonacci(i))
}
fmt.Println()
}