解题思路
看到题的第一刻就看出了这是一个低配版的约瑟夫环问题,那该怎么做呢,在看到题目的时候他告诉了你的要求分别是,人数,报数人,报数号,在报数号等于3时我们要将报数人淘汰,然后从1重新报数,当所有人数都报完后将重新从第一个开始报数,所以我的思路就是,设置两个计数器分别表示报数号和报数人,判断条件为出圈人数,当出圈人数=总人数-1的时候,那最后剩下的那个人就是我们要输出的号。
注意事项:
我在做的时候一开始,问题就出现在不知道该怎么去判断这个数是出圈人还是在圈人,所以我创立了一个bool数组,将数组全部遍历为真,当有一个出圈人数被判定出来,就会变为假,在新一轮报数的时候将会自动跳过他。
参考代码:
0.0分
10 人评分
计算质因子 (C++代码)浏览:1604 |
简单的a+b (C语言代码)浏览:681 |
WU-C语言程序设计教程(第三版)课后习题11.11 (C++代码)(想学链表的可以看看)浏览:1343 |
a+b浏览:432 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:537 |
数组与指针的问题浏览:715 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:696 |
整数平均值 (C语言代码)浏览:777 |
C二级辅导-公约公倍 (C语言代码)浏览:1309 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:426 |