30个旅客同乘一个游轮出海Happy,因为严重超载,必须将全船一半的旅客投入海中,其余人才能幸免遇难。大家同意一种办法:30人围成一圈,由第一个人数起,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人数起,数到第9人,再将他扔进大海中,如此循环地进行,直到剩下15个乘客为止。 要求实现如下功能: 1)建立一个具有30个结点的单循环链表; 2)生者与死者的选择:从位置为1的结点开始数,数到第8个结点,将其下一个结点从单循环链表中删除,然后,再从被删除结点的下一个结点开始数,数到第8个结点,再将其下一个结点删除,如此下去,直到剩下15个结点为止; 3)输出所有生者的位置
你搜索 “约瑟夫环” 就可以得到很多结果
不知道你这个问题是否已经解决, 如果还没有解决的话: