分糖果

10个小孩围成一圈分糖果,老师分给第1个小孩10块,第2个小孩2块,第3个小孩8块,第4个小孩22块,第5个小孩16块,第6个小孩4块,第7个小孩10块,第8个小孩6块,第9个小孩14块,第10个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖块数一样多吗?每人各有多少块糖?

#include<iostream>
using namespace std;
int judge(int c[])
{
for(int i=0;i<10;i++)
{
if(c[0]!=c[i])
{
return 1;
}
}
return 0;
}
void print(int s[])
{
int j;
cout<<j++;
for(int i=0;i<10;i++)
{
cout<<s[i]<<endl;
}
}
int main()
{
int sweet[10]={10,2,8,22,16,4,10,6,14,20};
int t[10];
cout<<"child 1 2 3 4 5 6 7 8 9 10"<<endl;
cout<<"time"<<endl;
print(sweet);
while(judge(sweet))
{
for(int i=0;i<10;i++)
{
if(sweet[i]%2==0)
{
t[i]=sweet[i]=sweet[i]/2;
}else
{
t[i]=sweet[i]=(sweet[i]+1)/2;
}
}
for(int l=0;l<9;l++)
{
sweet[l+1]=sweet[l+1]+t[l];
sweet[0]=sweet[0]+t[9];
}
print(sweet);
}
return 0;
}

posted @ 2023-04-22 23:52  为20岁努力  阅读(9)  评论(0编辑  收藏  举报