大家帮帮我!
约瑟夫问题怎么用c++数组解答啊?
比如15只猴子,报到3出局,最后谁留下?用c++怎么解啊?
3条回答 默认 最新
檀越@新空间 2024-04-05 16:19关注下午好🌅🌅🌅
本答案参考ChatGPT-3.5约瑟夫问题是一个非常经典的问题,它源自于古代罗马的一个传说。它的具体描述是:已知有n个人围成一圈,从第1个人开始依次报数,第m个人将被释放出去。接下来,从被释放的下一个人开始,同样要从1开始报数,再按照规定释放出去第m个人。如此循环,直到只剩下1个人为止。那么,最后留下来的人在原始编号的位置是多少?
解决方案:
-
创建一个大小为n的数组,表示这n个人是否还在游戏中。
-
从第一个人开始报数,设编号为i(i从1开始),如果这个人还在游戏中,就累加计数器(计数器初值为1),直到计数器等于m,将这个人从游戏中删除,即数组中对应的值变为0。
-
继续从下一个人开始报数,重复2步骤,直到只剩一个人为止。
-
最后剩下的那个人即为答案。
代码:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录-