为了账号安全,请及时绑定邮箱和手机立即绑定

help各位大神帮帮忙

help各位大神帮帮忙

C
才下眉头却上我心头 2016-05-07 10:22:20
有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;
		
}//我觉得不对


查看完整回答
反对 回复 2016-05-07
?
asd8532

TA贡献143条经验 获得超187个赞

你有没有测试数据,不知道写的对不对

查看完整回答
反对 回复 2016-05-07
  • 2 回答
  • 0 关注
  • 1167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信