C语言实验报告:[15]小孩分糖

2025-10-11 20:55:05

问题:

10个小孩围成一圈分糖,老师分给第1个孩子10块,第2个孩子2块,第3个孩子8块,第4个孩子22块,第5个孩子16块,第6个孩子4块,第7个孩子10块,第8个孩子6块,第9个孩子14块,第10个孩子20块,然后所有的小孩同时将自己手中的糖分一半给右边的小孩,糖块数为奇数的人可向老师再要一块。问经过这样几次调整后大家手中的糖的块数都一样?每人各有多少块糖。(注:第i个小朋友的右边是第i-1个小朋友,第1个小朋友的右边是第10个小朋友)

算法分析:

码源:

#include<stdio.h>

void main()

{

int a[10]={10,2,8,22,16,4,10,6,14,20},i,j=0,k;

for(i=1;;i++)

{

if(a[i]!=a[i+1])

{

k=a[0];

for(j=0;j<9;j++)

a[j]=(a[j]+a[j+1])/2;

a[9]=(a[9]+k)/2;

j++;

}

else break;

}

printf("经过次数:%d\n",j);

printf("每人各有:%d\n",a[1]);

}

(共篇)下一篇:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢