题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位 思路:用一个数组存这n个人,里面的初始状态全设为1,表示都还在圈子里面。 然后用q来记录报的号,因为每次报号报到3的人就得退出圈子,用j来表示圈子内剩余的人 ...
一 问题描述: 有 个人围成一圈 编号为 ,从第 号的人开始从 报数, 凡报到 的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。 问此人原来的位置是多少号 二 问题解决: .定义数组记录每个编号的状态 是否被淘汰 .在未被淘汰的人中检查是否数到 ,若是,淘汰此人 .继续此过程至所有人被淘汰 三 示例代码: View Code ...
2015-12-13 22:40 0 3725 推荐指数:
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位 思路:用一个数组存这n个人,里面的初始状态全设为1,表示都还在圈子里面。 然后用q来记录报的号,因为每次报号报到3的人就得退出圈子,用j来表示圈子内剩余的人 ...
0; printf("输入约瑟夫圈大小"); scanf("%d",&N); for(i=0;i< ...
C# with Array using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ...
首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们!然后今天群里突然有人提出了题目的这个问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 冥思苦想了半天(好吧,我承认我就审了审题目就百度 ...
有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位 解题思路: 从第一个人开始,逐个报数,谁报3就退出,并且重置报数,直到最后一个人后,又重新从第一个人继续报数,直到最终只剩一个人的时候退出即可。 答案: ...
这一道题,在刚学完指针之后的第一个礼拜,无意间看到课后练习,就去思考,起先不会做,想了很久,只有一点思路,但是还是不能把代码完整的写出来,后来就去百度,看了贴吧,发现这是经典问题了,俗名猴子选大王,发现很多种方法,我就挑其中的一种符合我这种初学者的方法,不过贴吧没有注释,一开始不理解,估计也有 ...
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 解题思路: 一直遍历这个数组,每隔2个删除一个元素,直到只剩下一个元素 如果遇到了数组的结尾,那么就跳转到开头 ...