Python小孩分糖果 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6, 14,20。 然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为奇数的人, 再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。

Python小孩分糖果 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6, 14,20。 然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为奇数的人, 再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。

Python小孩分糖果我的解法

10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6, 14,20。
然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为奇数的人,
再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。

sugars = [10,2,8,22,16,4,10,6,14,20]
t = [0,0,0,0,0,0,0,0,0,0]
i = 0
while True:     
    for i in range(10):
        if sugars[i]%2==1:sugars[i] += 1
        t[i] = sugars[i] = int(sugars[i]/2)            
   
    for i in range(0,10):
        sugars[i] += int(t[i-1])       # 右边的得到前面糖果的一半   
    print(sugars)
    if len(set(sugars))==1:break

李兴球

李兴球的博客是Python创意编程原创博客