分糖果

/*
题目:分糖果
内容: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;
 } 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值