有n个小朋友,每人手中有若干气球,现在老师带领他们做游戏,小朋友站成一排,每个人可以将手中的若干只气球传给(左右)相邻的人,但是排头只能传给下一个,排尾只能传给上一个,当每个人手中气球数一样多时游戏结束,求所有人传球次数和最小为多少?
例如:有4人,设有手中气球数:1 2 5 4
答案为3
小朋友A B C D
第一次D给C一个气球数 1 2 6 3
第二次C给B三个 1 5 3 3
第三次B给A两个 3 3 3 3
如何用代码实现?人数和气球数由键盘输入
2 回答
asd8532
TA贡献143条经验 获得超187个赞
#include <iostream>
using namespace std;
int main()
{
int a[100];
int n;
int ave,sum=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
sum += a[i];
}
ave = sum/n;
int count = 0;
int tcount=0;
int tsum=0;
for(int i=0;i<n;i++){
tsum += a[i];
tcount += 1;
if(tsum/tcount == ave)
{
count += (tcount-1);
tcount = 1;
tsum = 0;
continue;
}
}
cout<<count<<endl;
return 0;
}//我觉得不对- 2 回答
- 0 关注
- 1216 浏览
添加回答
举报
0/150
提交
取消
