我们提供安全,免费的手游软件下载!
题目描述
某个幼儿园里,有5位小朋友编号依次为1,2,3,4,5他们按照自己的编号顺序围坐在一张圆桌旁。他们身上有若干糖果,现在他们玩一个分糖果游戏。从1号小朋友开始,将自己的糖果均分成3份(如果有多余的糖果,就自己立即吃掉),自己留一份,其余两份分给和他相邻的两个小朋友。接着2,3,4,5号小朋友也这样做。问一轮结束后,每个小朋友手上分别有多少糖果。
输入格式
一行,5个用空格隔开的int范围内的正整数,分别是游戏开始时 1,2,3,4,5号小朋友手里糖果的数量。
输出格式
2行,第1行是用一个空格隔开的5个整数,表示一轮游戏结束后 1,2,3,4,5号小朋友手里糖果的数量。第2行是一个整数,表示一轮游戏过程中吃掉的糖果的总数。
输入输出样例
输入 #1
8 9 10 11 12
输出 #1
11 7 9 11 6 6
#include
#include
using namespace std;
int main() {
// 创建一个大小为5的vector,用于存储5位小朋友的糖果数量
vector candies(5);
// 依次读入5位小朋友的糖果数量
for (int i = 0; i < 5; ++i) {
cin >> candies[i];
}
// 创建一个大小为5的vector,用于记录每个小朋友吃掉的糖果数量
vector eaten(5, 0);
// 模拟游戏过程,对每位小朋友进行糖果分配
for (int i = 0; i < 5; ++i) {
// 根据规则计算出要分出去的糖果数量
int give_away = candies[i] / 3;
// 记录当前小朋友实际吃掉的糖果数量
eaten[i] += candies[i] % 3;
// 更新当前小朋友手中的糖果数量
candies[i] = give_away;
// 将多余的糖果分给下一个小朋友
candies[(i + 1) % 5] += give_away;
// 将多余的糖果分给上一个小朋友
candies[(i + 4) % 5] += give_away;
}
// 输出每位小朋友最终手中的糖果数量
for (int i = 0; i < 5; ++i) {
cout << candies[i] << " ";
}
cout << endl;
// 计算一轮游戏过程中吃掉的糖果总数
int total_eaten = 0;
for (int i = 0; i < 5; ++i) {
total_eaten += eaten[i];
}
// 输出一轮游戏过程中吃掉的糖果总数
cout << total_eaten << endl;
return 0;
}