/*
题目:分糖果
内容:10个小孩围成一圈分糖果,老师分给第1个小孩10块,第2个小孩2块,第3个小孩8块,第4个小孩
22块,第5个小孩16块,第6个小孩4块,第7个小孩10块,第8个小孩6块,第9个小孩14块,第10个小孩2
0块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块为奇数的人可向老师要一块。问经过
这样几次后大家手中的糖块数一样多?每人各有多少块糖?
作答者:小白杨
收获:
*/
#include <stdio.h>
int main()
{
int a[10] = {10,2,8,22,16,4,10,6,14,20};
int b[10] = {0};
int i,flag = 0;
while(1)
{
if(a[0]==a[1]&&a[0]==a[2]&&a[0]==a[3]&&a[0]==a[4]&&a[0]==a[5]&&a[0]==a[6]&&a[0]==a[7]&&
a[0]==a[8]&&a[0]==a[9])
break;
++flag;
for(i=0;i<10;i++)
{
if(i!=9)
b[i+1] = (a[i]+a[i+1])/2;
else
b[0] = (a[0]+a[9])/2;
}
for(i=0;i<10;i++)
{
if(b[i]%2 != 0)
b[i]++;
a[i] = b[i];
}
}
printf("flag=%d\n",flag);
printf("糖果数:%d\n",a[0]);
return 0;
}