湖北南漳县,淄博陶瓷网,张筱雨简历
一群猴子要选新猴王。新猴王的选择方法是:让n只候选猴子围成一圈,从某位置起顺序编号为1~n号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?
输入在一行中给一个正整数n(≤1000)。
在一行中输出当选猴王的编号。
代码如下:(官方代码)
#!/usr/bin/python # -*- coding: utf-8 -*- n=int(input()) ls=[i for i in range(1,n+1)] step=2 #步长 ptr=1 while len(ls) > 1: #ptr表示列表中第几个元素,没有第0个元素,只有下标为0的元素 ptr=(ptr+step-1)%len(ls)+1 #ptr 是 下一个开始的位数 del ls[ptr-1] print(ls[0])
这个程序的难点就在于ptr=(ptr+step-1)%len(ls)+1这句代码,说实话,我现在都不是特别特别明白。
下面是官方讨论链接,大家可看看。
读书和健身总有一个在路上
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python爬虫:Request Payload和Form Data的简单区别说明
浅谈Python中threading join和setDaemon用法及区别说明
Python3-异步进程回调函数(callback())介绍
python继承threading.Thread实现有返回值的子类实例
Python中使用threading.Event协调线程的运行详解
网友评论