略懂c语言 2022-05-01 22:23 采纳率: 92.6%
浏览 192
已结题

特殊约瑟夫问题 猴子选王

一群猴子都有编号,编号是1,2,3 ...n,这群猴子(n只)按照1-n的顺序围坐一圈,从第1开始顺序数,数到第m个,该猴子就要离开此圈;从他前一个开始从1逆序数,数到k,该猴子离开此圈;再从这只猴子的下一只猴子从1顺序数,数到m离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
输入猴子总数n,猴子顺序数数m,猴子逆序数数k。三数之间用空格分隔。n、m、k 不超过200。
输出最后获胜的猴子编号。
输入
8 3 5
输出
8
输入
8 2 5
输出
1

  • 写回答

2条回答 默认 最新

  • Hann Yang 全栈领域优质创作者 2022-05-02 07:53
    关注

    这是约瑟夫环出圈问题的升级版:

    n,m,k = (*map(int,input().split()),)
    pos,monkey = k,[*range(1,n+1)]
    
    while len(monkey)>1:
            pos = k if pos==m else m
            idx = (pos-1) % len(monkey)
            monkey = monkey[:idx][::-1] + monkey[idx+1:][::-1]
            
    print(*monkey)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月10日
  • 已采纳回答 5月2日
  • 创建了问题 5月1日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度