#约瑟夫问题,共有 n 个人围成一圈,从1开始报数,数到 m 时退出,再从 1 开始,直到所有人退出defJoseph(n,m):
ring =list(range(1,n+1))while ring:
index =1while index < m:
temp = ring.pop(0)
index +=1
ring.append(temp)#将不符合的添加到列表的最后,表示已跳过print("{}号淘汰了".format(ring.pop(0)))#如果正好等于,就将对应数字popif __name__ =='__main__':
Joseph(10,2)
2、球落地反弹,求走过的总路程
'''一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?'''defball():sum=0;
high =100;for i inrange(1,11):sum= high + high /2+sum
high /=2sum-= high;print("第十次落地经过的路程:%.2f"%sum)print("第i次反弹,高度:", i, high)if __name__ =='__main__':
ball()