题解 1047: [编程入门]报数问题

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

报数问题-题解

摘要:解题思路:这是著名的约瑟夫杀人问题,有n个人,报数为3的人将会被杀死并从被杀死的人的下一个人重新开始报数,最后只留下一个人。              所以我们可以定义一个数组,为了方便,可以将a[0……

map容器暴力模拟

摘要:用key代表初始编号,value代表每个人报的数,通过不断删除value为3(这里用0表示)的元素模拟每轮报数的情况,直到容器中只剩下最后一个元素,其key值即为所求值。 ```cpp #incl……

双向循环链表解决

摘要:解题思路:建立双向循环链表,每个结点保存一个人的序号,当被点到时删除结点并重新连接左右两个结点,直到剩下最后一个结点为止。注意事项:算法的时间复杂度和空间复杂度很高,很容易超过时间限制。参考代码:#i……

用c lass 和 循环一维

摘要:解题思路:注意事项:参考代码:class people:    def __init__(self,num):        self.num=num        self.J=Truen=int(……

如何解决报数问题

摘要:解题思路:将一串数字围成一个圆,每次删除一个数后,剩下的数重新再组成一个圆注意事项:注意,没删除一个数,剩下的一个数组成一个新圆的时候,报数并没有重新开始,而是继续向前参考代码:# 输入的flag_n……

报数问题题解

摘要:解题思路:注意事项:参考代码:n=int(input())x=nblist=[]alist=[i for i in range(1,n+1)]                 #生成初始顺序#prin……

[编程入门]报数问题

摘要:解题思路:题目要我们遇到三就让他退出,那我们不妨定义一个数组,让其中n个数都等于1,然后我们便让他们按顺序相加,当加起来等于三=3时,我们就让当这个数组等于0,最后当数组的n个数加起来等于1时,就只有……