分糖果

问题:

10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为10,2,8,22,16,4,10,6,14,20.。然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。

解决:

(1)定义整形数组存放初始条件

int sweet[10]={10,2,8,22,16,4,10,6,14,20};


(2)循环结构实现框架

while(judge(sweet))
{
for(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(i=0;i<9;i++)//把一半给右边的孩子
sweet[j+1]=sweet[j+1]+t[j];
sweet[0]+=t[9];//围成一圈
}

(3)定义judge函数判断糖果是不是一样

int judge(int c[])
{
int i;
for(i=0;i<10;i++)
if(c[0]!=c[i])
return 1;
return 0;
}





 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值