分糖果
B2020 分糖果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目描述
某个幼儿园里,有 $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
样例输入 #1
8 9 10 11 12
样例输出 #1
11 7 9 11 6
6
#include <iostream>
using namespace std;
int main()
{
int arr[5] = {};
int eat = 0;
for(int i = 0;i < 5; i++)
{
cin >> arr[i];
}
for (int i = 0;i < 5; i++)
{
int temp = 0;
temp = arr[i] / 3;
eat += arr[i] - temp * 3;
arr[i] /= 3;
if (i == 0)
{
arr[4] += arr[i];
}
else
{
arr[i - 1] += arr[i];
}
if (i == 4)
{
arr[0] += arr[i];
}
else
{
arr[i + 1] += arr[i];
}
}
for (int i = 0;i < 5; i++)
{
cout << arr[i] << " ";
}
cout << endl;
cout << eat << endl;
return 0;
}
注意必须使用int
创建函数,void
无效。吐槽一下,居然void
告诉我编译失败(
c++中数值比如arr[-1]
无法访问。
:-)