分糖果
描述
某幼儿园里,有5个小朋友围成一圈,他们的编号为1、2、3、4、5.他们身上都有若干个糖果,现在他们做一个分糖果游戏。从1号小朋友开始,将自己的糖果均分三份(如果分不均匀的糖果,则立即吃掉),自己留一份,其余两份分给他相邻的两个小朋友。接着2号、3号、4号、5号小朋友同样这么做。问一轮后,每个小朋友手上分别有多少糖果?
输入
输入只有一行,包括5个整数,以空格隔开,代表在游戏开始之前,每个小朋友手中糖果的数量。
输出
输出一行,5个整数,以空格隔开,分别为一轮后每个小朋友的糖果数量。
参考代码:
def distribute_candies(candies):
# 初始化小朋友的糖果数量列表
new_candies = [0] * 5
# 遍历每个小朋友,进行糖果分配
for i in range(5):
# 当前小朋友的糖果数
total_candies = candies[i]
# 计算不能均匀分配的糖果数(即吃掉的部分)
eaten_candies = total_candies % 3
# 计算能均匀分配的糖果数
distributed_candies = (total_candies - eaten_candies) // 3
# 当前小朋友保留一份糖果
new_candies[i] += eaten_candies
# 将糖果分给相邻的小朋友(注意循环)
next_kid = (i + 1) % 5
prev_kid = (i - 1 + 5) % 5
new_candies[next_kid] += distributed_candies
new_candies[prev_kid] += distributed_candies
return new_candies
# 读取输入
input_str = input()
candies = list(map(int, input_str.split()))
# 分配糖果
result = distribute_candies(candies)
# 输出结果
print(" ".join(map(str, result)))