一个函数调用自己,就叫做递归
递归的设计原则:
1.一个大的问题能够分解成相似的小问题
2.定义好出口条件
举个简单的例子
package main
import(
"fmt"
"time"
)
func main(){
fmt.Println("hello world")
time.Sleep(time.Second*2)
main()
}
n的阶乘
package main
import(
"fmt"
)
func calc(n int) int{
if n == 1 {
return 1
}
return calc(n-1)* n
}
func main(){
n := calc(5)
fmt.Println(n)
}
输出:120
斐波那契数
package main
import(
"fmt"
)
func fab(n int) int{
if n<=1{
return 1
}
return fab(n - 1) + fab(n - 2)
}
func main(){
for i:=0 ; i<10; i++{
n:=fab(i)
fmt.Println(n)
}