洛谷B2020分糖果

洛谷B2020
题目描述
某个幼儿园里,有 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号小朋友手里糖果的数量。第 22 行是一个整数,表示一轮游戏过程中吃掉的糖果的总数。
运行代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a[5],count=0;
	for(int j=0;j<5;j++)
	{
		cin>>a[j];
	}
	for(int i=0;i<5;i++)
	{
		count+=a[i]%3;
		if(i==0){
			a[1]+=a[0]/3;
			a[4]+=a[0]/3;
		}
		else if(i==4){
			a[3]+=a[i]/3;
			a[0]+=a[i]/3;
		}
		else{
			a[i+1]+=a[i]/3;
			a[i-1]+=a[i]/3;
		}
		a[i]=a[i]/3;
	}
	for(int j=0;j<5;j++)
	{
	cout<<a[j]<<" ";
	}
	cout<<endl;
	cout<<count;
	return 0; 
}

运行结果:
在这里插入图片描述
需要注意的第一点是一轮结束是从私以为小朋友开始到最后一位小朋友结束,需要单独考虑的是第一位和最后一位小朋友,因为第一位小朋友的糖果要分给,第二位和最后一位,最后一位小朋友的糖果需要分给倒数第二位和第一位。
需要注意的第二点是数组的设定,数组设定从a[0]开始,那么到a[4]小朋友均存储完毕。从1开始则需要到5才能结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值