洛谷B2020 分糖果

题目描述

某个幼儿园里,有 55 位小朋友编号依次为 1,2,3,4,51,2,3,4,5 他们按照自己的编号顺序围坐在一张圆桌旁。他们身上有若干糖果,现在他们玩一个分糖果游戏。从 11 号小朋友开始,将自己的糖果均分成 33 份(如果有多余的糖果,就自己立即吃掉),自己留一份,其余两份分给和他相邻的两个小朋友。接着 2,3,4,52,3,4,5 号小朋友也这样做。问一轮结束后,每个小朋友手上分别有多少糖果。

输入格式

一行,55 个用空格隔开的 int 范围内的正整数,分别是游戏开始时 1,2,3,4,51,2,3,4,5 号小朋友手里糖果的数量。

输出格式

22 行,第 11 行是用一个空格隔开的 55 个整数,表示一轮游戏结束后 1,2,3,4,51,2,3,4,5 号小朋友手里糖果的数量。第 22 行是一个整数,表示一轮游戏过程中吃掉的糖果的总数。

#include <iostream>
#include <iomanip>
using namespace std;
//是给相邻同学不是后两位!!!即i+1 && i-1
int main()
{
	int a[5];
	for (int i = 0; i < 5; i++)
	{
		cin >> a[i];
	}
	int count = 0;
	for (int i = 0; i < 5; i++)
	{
		count += a[i] % 3;//计算吃掉的糖果
		a[(i + 1) % 5] += a[i] / 3;//可能会溢出(5->1)
		if (i == 0)
			a[4] += a[i] / 3;//第一位同学给第五位
		else
			a[(i - 1)] += a[i] / 3;
		a[i] = a[i] / 3;
	}
	for (int i = 0; i < 5; i++)
	{
		cout << a[i] << " ";
	}
	cout << endl;
	cout << count;
	return 0;
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值