Go之路(十一):内置函数和递归
内置函数和递归

主要说一下panic和recover
panic是用来抛出异常
直接Panic(error)
recover用来捕获异常
defer func(){
if err := recover();err == nil{
fmt.Print(err)
}
}
递归:
练习1:一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子
func yazi(n int)int{
if n == 7{
return 2
}
return (yazi(n+1)+1)*2
}
练习2:角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。
func ziranshu(m ,n int)int{
if m==1{
return n+1
}else{
fmt.Println(m)
if m % 2 ==0{
n++
return ziranshu(m/2,n)
}else{
n++
return ziranshu(m*3+1,n)
}
}
}

浙公网安备 33010602011771号