import sys
for line in sys.stdin:
a = line.split()
n=int(a[0])
t=1
l=[i for i in range(n+1)]
m=0
l2=[]
while len(l)!=1:
n=len(l)
for i in range(1,n//2+1):
m=0
if t*(2*i-1)<n:
l2.append(l[t*(2*i-1)])
l[t*(2*i-1)-1]=0
else:
break
if len(l)==1:
break
l=[i for i in l2]
l2=[]
#print(l)
print(l[0])
#print(int(a[0]) + int(a[1]))
这道题的整体思路比较简单。每次都删除数组的奇数位上的元素,因为使用pop会立马改变数组长度,我们选择用一个新数组去存储偶数位置的元素。



京公网安备 11010502036488号