背景需求:
上个月,看到大4班一个孩子在玩“点兵点将点到谁就是谁”的小游戏,他在桌上摆放两排奥特曼卡片,然后点着数“点兵点将点到谁就是谁”,第10次点击的卡片,拿起来与同伴的卡片进行交换。他是从第一排左向右,第二排右向左,循环点数
我想如果我从左向右点,再向左,再向右,2-10张卡片,分别会点在哪一张卡片上
假设有2张-10张卡片
'''
点兵点将点到谁就是谁(从做向右、从右向左)
作者:阿夏:
时间:2024年1月23日'''
nn=[]
for s in range(2,11):
nn.append(s)
all=[]
list=[]
listall=[]
# n=int(input('候选人人数\n'))
for n in nn:
list.clear()
all.clear()
listall.clear()
zy='点兵点将点到谁就是谁'
print(len(zy))
for i in range(1,n+1):
all.append(i)
# [1,2,3,4]
list.append(i)
# [1,2,3,4]
if n==2:
pass
else:
all.reverse()
# [1,2,3,4]倒置[4, 3, 2,1]
all.pop(0)
all.pop(-1)
# 删除[4, 3, 2,1]的4和1,留下[3,2]
for a in all:
list.append(a)
# 提取3,2
print(list)
# 基础模板[1, 2, 3, 4, 3, 2]
for y in range(int(len(zy)/len(list))+1):
for z in list:
listall.append(z)
print(listall)
print('一共有',n,'人,点在左起第',listall[len(zy)-1],'人身上')
结果分析
代码解析少,分数很低