《一》问题描述: 有17个人围成一圈(编号为0~16),从第 0号的人开始从 1报数, 凡报到 3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。 问此人原来的位置是多少号? 《二》问题解决: 1.定义数组 ...
题目:有n个人围成一圈,顺序排号。从第一个人开始报数 从 到 报数 ,凡报到 的人退出圈子,问最后留下的是原来的第几号的那位 思路:用一个数组存这n个人,里面的初始状态全设为 ,表示都还在圈子里面。 然后用q来记录报的号,因为每次报号报到 的人就得退出圈子,用j来表示圈子内剩余的人数。 每当有人报到 时,j ,同时将数组中该元素的值标记为 ,q清 。 这样while循环结束后,数组中就只会剩下一个 ...
2018-01-16 11:32 0 2396 推荐指数:
《一》问题描述: 有17个人围成一圈(编号为0~16),从第 0号的人开始从 1报数, 凡报到 3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。 问此人原来的位置是多少号? 《二》问题解决: 1.定义数组 ...
Input: 包含多组数据。 每行表示初始人数n。<n<1000000)< p=""> 最后一组是0,不用处理。 Output: 对每个测试数据输出最后一人的初始编号 Sample Input: 3 7 0 Sample Output ...
有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位 解题思路: 从第一个人开始,逐个报数,谁报3就退出,并且重置报数,直到最后一个人后,又重新从第一个人继续报数,直到最终只剩一个人的时候退出即可。 答案: ...
这一道题,在刚学完指针之后的第一个礼拜,无意间看到课后练习,就去思考,起先不会做,想了很久,只有一点思路,但是还是不能把代码完整的写出来,后来就去百度,看了贴吧,发现这是经典问题了,俗名猴子选大王,发 ...
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 解题思路: 一直遍历这个数组,每隔2个删除一个元素,直到只剩下一个元素 如果遇到了数组的结尾,那么就跳转到开头 ...
有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 点我看视频讲解+可运行代码,记得收藏视频,一键三连 解题思路: 从第一个人开始,逐个报数,谁报3就退出,并且重置报数,直到最后一个人后,又重新从第一个人继续报数,直到最终只剩 ...