1.一本通 例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
分析:
本题为一个简单的整除问题,但注意以下细节
- 1.注意文本细节理解
- “如果有多余的糖果,则立即吃掉”而不是留给自己再加上%;
- 2.宽度处理(23与24 行)
-
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<iomanip> 5 using namespace std; 6 int n,a[10]; 7 //用数组模拟这五个人,用%,+等运算 模拟 8 int main() 9 { 10 for(int i=1;i<=4;i++) 11 cin>>a[i]; 12 cin>>a[0]; 13 for(int i=1;i<=4;i++) 14 { 15 a[(i+6)%5]+=a[i]/3; 16 a[(i+4)%5]+=a[i]/3; 17 a[i]=a[i]/3; 18 } 19 a[1]+=a[0]/3; 20 a[4]+=a[0]/3; 21 a[0]=a[0]/3; 22 for(int i=1;i<=4;i++) 23 // cout<<setw(5)<<a[i]; 24 printf("%5d",a[i]); 25 printf("%5d",a[0]); 26 return 0; 27 }