题目大意:一群学生围着老师坐成一个圈,开始每人都有偶数的糖果,大家同时把自己的一半糖果给下一个人,如果变成奇数的话向老师在要一颗,知道所有人糖果相同,输出最后的糖果数和经过的次数。
while(scanf("%d",&n)!=EOF)一直都过不了。。。
#include <stdio.h>
#include <string.h>
int main()
{
int f[100],n,i,t,front,temp,ave,num;
while(scanf("%d",&n)==1&&n!=0)
{
memset(f,0,sizeof(f));
for(i=1;i<=n;i++)
{
scanf("%d",&f[i]);
}
t=0;
while(1)
{
front=f[n]/2;
for(i=1;i<=n;i++)
{
f[i]=temp=f[i]/2;
f[i]+=front;
if(f[i]%2!=0)
f[i]++;
front=temp;
}
t++;
ave=f[1];
num=0;
for(i=1;i<=n;i++)
{
if(ave==f[i])
num++;
}
if(num==n)
break;
}
printf("%d %d\n",t,f[1]);
}
return 0;
}