解题思路:
话不多说,看注释
注意事项:
分糖果时,是同时分。所以刚刚得到的糖果不拿来分
参考代码:
#include
int main(){
int n,i,a[100];
while(scanf("%d",&n)==1){
int t=0;
for(i=0;i
while(1){ //当全部人有相同糖果时,跳出
int c=0,k;
for(i=0;i
if(a[i]!=a[i+1]){
c=1;break;
}
}
if(c){
k=0; //暂时记录每个人要分出糖果
for(i=0;i
k=(a[i]-k)/2; //计算要分得糖果,减去刚得到的
a[i]-=k; //分去后剩下的
a[i+1]+=k; //下一个小朋友的到后总的糖果
}
k=(a[i]-k)/2; //最后一个小朋友,分给第一个小朋友
a[i]-=k;
a[0]+=k;
for(i=0;i
if(a[i]%2==1){
t++; //老师发一个
a[i]+=1;
}
}
}
else{
break;
}
}
printf("%d\n",t);
}}