猴子选大王问题(Monkey King)
猴子选大王问题: 一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1到m的顺序围坐一圈,
从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
经典算法(C#版本)
1 public int King(int M, int N) 2 { 3 //总猴数 M ,数到第 N 个排除。 4 int k = 0; 5 for (int i = 2; i <= M; i++) 6 k = (k + N) % i; 7 return ++k; 8 }
经典算法(python版本py 2.7)
1 def king(m,n): 2 l,i=range(m),0 #构造list代表猴子,i记录点名的次数,没点名时候记0 3 while len(l)>1: #当猴子数目大于一个时候 4 k=l.pop(0) #点到名字的猴子出列 5 i+=1 #点名次数+1 6 if i%n!=0: #不是n*x次被点名的猴子站到队伍末尾,等待再次被点名 7 l.append(k) 8 return l[0]+1 #返回猴子的编号 list index默认0开始
monkeyking特例时候的(python版本 py 2.7)
1 #5只猴一圈,点到第3个时候出圈 2 l=range(5) 3 while (len(l)>1): 4 l.append(l.pop(0)) 5 l.append(l.pop(0)) 6 l.pop(0) 7 print l[0]+1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具