首页 > 试题广场 >

选举领导

[编程题]选举领导
  • 热度指数:9 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
一个团队有N个人选举领导,他们排成一队,从左向右数,每数到5,这个人自动退出队列,然后继续向前数,数到队列最后一位时,接着从队列的开始处数(计数不重新开始),直到队列中剩下最后一个人,这个人便成为团队的领导。请写出代码计算领导选举的结果。

输入描述:
人数N, N > 1。console读入一个整数N


输出描述:
输出领导的序号index, N-1 >= index >= 0。console输出一个整数序号index
示例1

输入

4

输出

1
循环链表完事儿
class Link:
    def __init__(self, val):
        self.val = val
        self.next =None
N = list(map(int, input().split()))[0]
#print(N)

head = Link(0)
cur = head
for i in range(1, N):
    new  = Link(i)
    head.next = new
    head = new
head.next = cur
while cur.next!=cur:
    for i in range(4):
        pre=cur
        cur=cur.next
    pre.next = cur.next
    cur = pre.next
print(cur.val)
发表于 2020-05-30 02:56:52 回复(0)