1.一对刚出生的小兔子,出生后第4个月起每个月都生一对兔子,等小兔子长到第四个月后每个月又可以生一对兔子,如果兔子都长生不死,请问每个月的兔子总数是多少?
2.约梭芬杀人法 把犯人围成一圈,每次从固定位置开始算起,杀掉第7个人,直到剩下最后一个。
//1 兔子问题(斐波那契数列)
func sum(month int) int {
fmt.Println("sum:", month)
if month < 4 {
return 2
} else if month <= 0 {
return 0
}
return sum(month-1) + sum(month-3)
}
//2 约梭芬杀人法
func kill(people []int) []int {
if len(people) == 1 {
return people
}else if len(people) < 7 {
a := 7%len(people)-1
arr1 := append(people[a+1:],people[0:a]...)
return kill(arr1)
}
arr1 := append(people[7:],people[0:6]...)
return kill(arr1)
}
func main() {
//fmt.Println("LLL")
//1
fmt.Println(sum(7))
//2
num := 12
var arr [12]int
for i := 0;i<num;i++{
arr[i] = i+1
}
arr1 := arr[0:num]
fmt.Println(arr)
fmt.Println(kill(arr1))
}
网友评论