文章目录
【题目描述】
某幼儿园里,有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<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,d,e;
cin>>a>>b>>c>>d>>e;
a /= 3; b += a; e += a;//1号小朋友分糖
b /= 3; a += b; c += b;//2号小朋友分糖
c /= 3; d += c; b += c;//3号小朋友分糖
d /= 3; c += d; e += d;//4号小朋友分糖
e /= 3; a += e; d += e;//5号小朋友分糖
printf("%5d%5d%5d%5d%5d",a,b,c,d,e) ;
return 0;
}
【知识点小结】
知识点一:
%md:
功能与c++中的 setw(n)函数一样 ,可以使不足n位的int型变量以m位进行右对齐输出,高位默认用空格补齐,如果本身超过n位则保持原样。
使用printf()按5位宽度输出
printf("%5d%5d%5d%5d%5d",a,b,c,d,e) ;
使用cout按5位宽度输出
cout << setw(5) <<a;
cout << setw(5) <<b;
cout << setw(5) <<c;
cout << setw(5) <<d;
cout << setw(5) <<e;
知识点二:c++中的复合算术运算赋值
简写 含义
a+=b a=a+b
a-=b a=a-b
a*=b a=a*b
a/=b a=a/b
a%=b a=a%b