Curry.cn 2024-04-05 16:19 采纳率: 100%
浏览 5
已结题

约瑟夫问题求解答帮帮我

大家帮帮我!
约瑟夫问题怎么用c++数组解答啊?
比如15只猴子,报到3出局,最后谁留下?用c++怎么解啊?

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-04-05 16:19
    关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    约瑟夫问题是一个非常经典的问题,它源自于古代罗马的一个传说。它的具体描述是:已知有n个人围成一圈,从第1个人开始依次报数,第m个人将被释放出去。接下来,从被释放的下一个人开始,同样要从1开始报数,再按照规定释放出去第m个人。如此循环,直到只剩下1个人为止。那么,最后留下来的人在原始编号的位置是多少?

    解决方案:

    1. 创建一个大小为n的数组,表示这n个人是否还在游戏中。

    2. 从第一个人开始报数,设编号为i(i从1开始),如果这个人还在游戏中,就累加计数器(计数器初值为1),直到计数器等于m,将这个人从游戏中删除,即数组中对应的值变为0。

    3. 继续从下一个人开始报数,重复2步骤,直到只剩一个人为止。

    4. 最后剩下的那个人即为答案。

    代码:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月5日