蓝桥杯-分糖果

本文探讨了蓝桥杯比赛对于提升个人编程能力和职场竞争力的影响。通过参与蓝桥杯,参赛者能增强解决问题和实战经验,为未来职业生涯打下坚实基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

'''

有n个小朋友围坐成一圈。老师给每个小朋友随机发**偶数**个糖果,然后进行下面的游戏:

每个小朋友都把自己的糖果分一半给左手边的孩子。
一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。

反复进行这个游戏,直到所有小朋友的糖果数都相同为止。
你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。


输入格式
程序首先读入一个整数 N(2<N<100),表示小朋友的人数。

接着是一行用空格分开的N个偶数(每个偶数不大于 1000,不小于2)

输出格式
要求程序输出一个整数,表示老师需要补发的糖果数,


样例输入
    3
    2 2 4
样例输出
    4
'''







# 给左边的孩子
def give_left_child(p_list,pn , new_p_list ):

    '''
    序号为pn的孩子,给num的糖果给左边
    :param p_list:
    :param pn:
    :return:
    '''
    '''
    每个人都是自己的一半,加上右边人的一半
    '''

    print(pn)
    new_p_list[pn - 1] = p_list[pn - 1]//2 + p_list[ pn ]//2



def one_circle(p_list):

    new_p_list = [0]*len(p_list)
    # 第一轮
    for i in range(len(p_list)):
        give_left_child(p_list, i,new_p_list)

    print(new_p_list)
    return new_p_list

p_list = [2,2,4]
p_list = one_circle(p_list)
print(p_list)

g_give_count = 0
# 教师给糖
def teacher_give_candy(p_list):
    global g_give_count
    for i in range(len(p_list)):
        if(p_list[i]%2 == 1):
            p_list[i] = p_list[i] + 1
            g_give_count = g_give_count + 1


teacher_give_candy(p_list)
print("2---")
print(p_list)


p_list = one_circle(p_list)
print("3---")
print(p_list)


teacher_give_candy(p_list)
print("4---")
print(p_list)


# 如果全都相等,就输出糖果数
print(g_give_count)








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值