大家自行百度下约瑟夫问题,这里用golang+单向循环链表的方式解决约瑟夫问题,下面先提供一下代码:
func (h *people)joseph(nint) {
p :=h
q := p.next
i :=0
for {
if p != q {
i++
if i == n-1 {
// fmt.Println(q.name, ":", q.age)
p.next = q.next
p = p.next
q = p.next
i =0
continue
}
p = q
q = q.next
}else {
fmt.Println("last:", p.name, p.age)
return
}
}
}
网友评论