学习
怎么做到的呢
不懂怎么写,看一下
从连接跳过来的,看看,学习一下.
有思路了
学习一下
def yue(n,k):
list_y =
t = list_y.pop(k-1)
while len(list_y) > 1:
if len(list_y) < k:
t1 = (k-1)%len(list_y)
t = list_y.pop(t1)
list_y = list_y + list_y[:t1]
else:
list_y = list_y + list_y[:k-1]
t = list_y.pop(k-1)
print(list_y.pop()+1)
yue(100,3)
yue(10000,6)
效率一点都比不上你
def yue1(n,k):
list_x =
list_y = list_x[:]
t = k-1
while len(list_x) > 1:
if len(list_x)<k:
list_x.pop(t1)
t1 = (t1+k-1)%(len(list_x))
else:
for i,j in enumerate(list_x):
if i%k == t:
c = i
list_y.remove(j)
t1 = t = (c + k - len(list_x))
list_x = list_y[:]
print(list_x.pop()+1)
yue1(100000,6)
我是来抄答案的!{:5_97:}
la'la
看一看
学习一下
学习一下
我想看看,源码,谢谢{:5_91:}
我来看看结果。我的想法是,定义两个变量,一个变量为人数n,一个变量为k,然后循环N次,每次K+=k,最终K/n的余数就是最后剩下的人
看看帖子里藏了啥好东西~~~
看看帖子里藏了啥好东西~~~
num = int(input('多少人围成一圈:'))
list1 = list(range(1, num + 1))
n = 2
while len(list1) > 1:
list1.pop(n)
n = (n + 2) % len(list1)
print('最后留下的是原来第%d号'%list1)
学习一下
本帖最后由 badaoqingchen 于 2018-4-23 17:32 编辑
x = range(1, n+1)
while 1:
if len(x) == 1:
print x
break
if len(x) == 2:
print x
break
x1 = len(x)%3
x0 = []
for i in x:
if (x.index(i)+1) %3 == 0:
print i
x0.append(i)
for i in x0:
x.remove(i)
for i in range(x1):
x.insert(0,x[-1])
x = x[:-1]