[求助]分糖果
十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块糖?(要求给出每一轮每人手上的糖果数量)。给个思路,谢谢。
#include <stdio.h>
int i,j=0,l,flag=0;//j=第几轮。
int a[10]={10,2,8,22,16,4,10,6,14,20};
void shuchu()
{
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
}
void main()
{
while (flag==0)// flag==0,退出循环。
{
printf("第 %2d 轮分糖:\n",++j);
printf("开始:");
shuchu();
l=a[9]/2;
for(i=9;i>0;i--)
a[i]=a[i]/2+a[i-1]/2;
a[0]=a[0]/2+l;
printf("分糖: ");
shuchu();//开始新一轮分糖。
for(i=0;i<10;i++)
{
if (a[i]%2==1)
a[i]+=1;
}
printf("补糖: ");
shuchu();
printf("\n");//分好补糖。
flag=1;
for(i=1;i<10;i++) // a[0]=任意a[i],继续分糖。
{
if (a[0]!=a[i])
flag=0;
}
}
}
你的没问题。呵呵