一本通 例2.17 分糖果

某幼儿园里,有5个小朋友编号为1、2、3、4、5,他们按自己的编号顺序围坐在一张圆桌旁。他们身上都有若干个糖果(键盘输入),现在他们做一个分糖果游戏。从1号小朋友开始,将自己的糖果均分三份(如果有多余的糖果,则立即吃掉),自己留一份,其余两份分给他的相邻的两个小朋友。接着2号,3号、4号、5号小朋友同样这么做。问一轮后,每个小朋友手上分别有多少糖果?

输入

一行,5位小朋友的糖果数。

输出

输出5个小朋友最后手上的糖果数,按5位宽度输出

样例输入
8 9 10 11 12
样例输出
 11 7 9 11 6

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[7],b;//数组a存放每个人有多少糖,b表示分3份(自己留下的和分出去的)
for(int i=0;i<=7;i++)
a[i]=0;
for(int i=1;i<=5;i++)
cin>>a[i];
for(int i=1;i<=5;i++)
{
b=a[i]/3;
a[i]=b;
a[i-1]+=b;//给前面的糖
a[i+1]+=b;//给后面的糖
a[5]=a[5]+a[0];//1的前面是5,但是1分出去的本来应该给5,但是现在给了0,所以应该把0的在加给5
a[0]=0;
}
a[1]=a[1]+a[6];//和5一样
for(int i=1;i<=5;i++)
cout<<setw(5)<<a[i];//题目要求5字符输出
cout<<endl;
return 0;
}

posted @ 2022-08-13 09:01  崔浩翔  阅读(115)  评论(0编辑  收藏  举报