原文:【转】约瑟夫环算法---------题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.

提示:用环形链表实现 对于这个题目其实就是用c语言的循环链表实现一个约瑟夫环。我们可以定义一个循环链表,将这n个人加入到链表中,然后定义三个节点指针在链表上循环,移动跨度为 ,利用链表的循环功能每次删除第三个节点,这边要注意的一个问题就是你定义的是 个指针,且在循环中他们彼此也都是有 gt next关系,一般我们判断循环结束条件时都是一个节点的下一个节点是否为它本身 如ptr gt next pt ...

2017-03-27 17:32 0 3211 推荐指数:

查看详情

n个人围成一圈顺序排号。从第一个人开始报数(从1到3报数),报到3的人退出圈子最后留下的是原来第几号那位

这一道题,在刚学完指针之后的第一个礼拜,无意间看到课后练习,就去思考,起先不会做,想了很久,只有一点思路,但是还是不能把代码完整的写出来,后来就去百度,看了贴吧,发现这是经典问题了,俗名猴子选大王,发现很多种方法,我就挑其中的一种符合我这种初学者的方法,不过贴吧没有注释,一开始不理解,估计也有 ...

Tue Dec 08 20:56:00 CST 2015 6 55239
n个人围成一圈顺序排号。从第一个人开始报数(从1到3报数),报到3的人退出圈子最后留下的是原来第几号那位

题目:有n个人围成一圈顺序排号。从第一个人开始报数(从1到3报数),报到3的人退出圈子最后留下的是原来第几号那位。 解题思路: 一直遍历这个数组,每隔2个删除一个元素,直到只剩下一个元素 如果遇到了数组的结尾,那么就跳转到开头 ...

Fri May 31 06:49:00 CST 2019 0 1905
约瑟夫问题:有n个人围成一圈顺序排号。从第一个人开始报数(从1到3报数),报到3的人退出圈子最后留下的是原来第几号那位

首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们!然后今天群里突然有提出了题目的这个问题:有n个人围成一圈顺序排号。从第一个人开始报数(从1到3报数),报到3的人退出圈子最后留下的是原来第几号那位。 冥思苦想了半天(好吧,我承认我就审了审题目就百度 ...

Wed Sep 04 01:58:00 CST 2019 0 1043
n个人围成一圈顺序排号。从第1个开始报数(从1到3报数),报到3的人退出圈子,最后留下的是原来第几号那位

n个人围成一圈顺序排号。从第1个开始报数(从1到3报数),报到3的人退出圈子,最后留下的是原来第几号那位 解题思路: 从第一个人开始,逐个报数,谁报3就退出,并且重置报数,直到最后一个人后,又重新从第一个人继续报数,直到最终只剩一个人的时候退出即可。 答案: ...

Thu Sep 03 02:14:00 CST 2020 0 622
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM