首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们!然后今天群里突然有人提出了题目的这个问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 冥思苦想了半天(好吧,我承认我就审了审题目就百度 ...
个人编号 ,围坐一圈,从 号开始进行 , , 报数,谁报数为 ,就离开圈子,剩下的人继续报 , , ,报数为 的出圈。。。 请写一段程序,计算最后一个留下来的人,他的编号 ...
2017-09-02 09:59 0 1070 推荐指数:
首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们!然后今天群里突然有人提出了题目的这个问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 冥思苦想了半天(好吧,我承认我就审了审题目就百度 ...
样例输入3 输出2 输入100 输出91 代码及分析: #include<stdio.h> int main() { int i,n,N,out,a[1000]; out=i=n=0; //用out记录退出圈子的人,初始化 ...
提示:用环形链表实现 对于这个题目其实就是用c语言的循环链表实现一个约瑟夫环。我们可以定义一个循环链表,将这n个人加入到链表中,然后定义三个节点指针在链表上循环,移动跨度为3,利用链表的循环功能每次删除第三个节点,这边要注意的一个问题就是你定义的是3个指针,且在循环中他们彼此也都是有 -> ...
《一》问题描述: 有17个人围成一圈(编号为0~16),从第 0号的人开始从 1报数, 凡报到 3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。 问此人原来的位置是多少号? 《二》问题解决: 1.定义数组 ...
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位 思路:用一个数组存这n个人,里面的初始状态全设为1,表示都还在圈子里面。 然后用q来记录报的号,因为每次报号报到3的人就得退出圈子,用j来表示圈子内剩余的人 ...
需求:有n个人围成一圈,顺序排号, 从第1个人开始报数(从1到3),凡报到3的人退出圈子,问最后留下的是原来第几号的那位 代码逻辑 n个人,通过输入参数n,生成一个长度为n的列表 通过报数逻辑函数,只要数到3的就把那个位置相对应的列表值设置为0,同时留下的人数也要 ...
有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位 解题思路: 从第一个人开始,逐个报数,谁报3就退出,并且重置报数,直到最后一个人后,又重新从第一个人继续报数,直到最终只剩一个人的时候退出即可。 答案: ...