沈阳高端网站/百度浏览器网址是多少
分糖果
题目描述
某个幼儿园里,有 555 位小朋友编号依次为 1,2,3,4,51,2,3,4,51,2,3,4,5 他们按照自己的编号顺序围坐在一张圆桌旁。他们身上有若干糖果,现在他们玩一个分糖果游戏。从 111 号小朋友开始,将自己的糖果均分成 333 份(如果有多余的糖果,就自己立即吃掉),自己留一份,其余两份分给和他相邻的两个小朋友。接着 2,3,4,52,3,4,52,3,4,5 号小朋友也这样做。问一轮结束后,每个小朋友手上分别有多少糖果。
输入格式
一行,555 个用空格隔开的 int
范围内的正整数,分别是游戏开始时 1,2,3,4,51,2,3,4,51,2,3,4,5 号小朋友手里糖果的数量。
输出格式
222 行,第 111 行是用一个空格隔开的 555 个整数,表示一轮游戏结束后 1,2,3,4,51,2,3,4,51,2,3,4,5 号小朋友手里糖果的数量。第 222 行是一个整数,表示一轮游戏过程中吃掉的糖果的总数。
样例 #1
样例输入 #1
8 9 10 11 12
样例输出 #1
11 7 9 11 6
6
思路
没有难度,就是按着题意算就可以,如果有不懂的,可以在下方给我留言。
代码
#include <iostream>
#include <cmath>
using namespace std;int main() {int r[5];int total = 0;for (int i = 0; i < 5; i++) {cin >> r[i];}for (int i = 0; i < 5; i++) {total += r[i] % 3;if (i == 4) {r[0] += r[i] / 3;}else {r[i + 1] += r[i] / 3;}if (i == 0) {r[4] += r[i] / 3;}else {r[i-1] += r[i] / 3;}r[i] /= 3;}for (int i = 0; i < 5; i++) {cout << r[i]<< " ";}cout << endl << total << endl;return 0;
}