help各位大神帮帮忙

有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
   如何用代码实现?人数和气球数由键盘输入


才下眉头却上我心头
浏览 1173回答 2
2回答

asd8532

#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; }//我觉得不对

asd8532

你有没有测试数据,不知道写的对不对
打开App,查看更多内容
随时随地看视频慕课网APP