【题目描述】
某幼儿园里,有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、3、4、5号小朋友用变量a、b、c、d、e代替
示意图:
a
e b
d c
与 a 相邻的是 e 和 d ,与 b 相邻的是 a 和 c ……以此类推。
a 分给 e 和 d a/3的糖果,自己保留 a/3(整除直接省略多余的糖果,也就是吃掉)。
【参考答案】
#include<iostream> using namespace std; int main() { int a,b,c,d,e; // a b c d e 分别代表 1 2 3 4 5 号同学 cin>>a>>b>>c>>d>>e; a=a/3.0; //是除 3.0,不是除 3 b=b+a; // a 分给 b e=e+a; // a 分给 e b=b/3.0; a=a+b; c=c+b; c=c/3.0; b=b+c; d=d+c; d=d/3.0; c=c+d; e=e+d; e=e/3.0; d=d+e; a=a+e; printf("%5d%5d%5d%5d%5d",a,b,c,d,e); //域宽为 5 return 0; }