一个分糖果游戏的解法

本文介绍了一个圆形排列的学生分糖果游戏,每轮学生将糖果减半给右侧同学,奇数则由老师补充,直到所有学生糖果数相同。通过输入学生人数及初始糖果数进行测试,输出老师吹哨次数及最终糖果数。给出了C++代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 所有学生以圆形围着老师,每个学生开始时均有偶数块糖果,老师每吹一次哨子,每位学生拿出手中一半糖果给右侧的同学,对任何一个学生,吹哨后,当手中的糖果数为奇数块时,由老师补一块给他(她),这样下去,当每个学生手中的糖果数相同时,游戏结束.
输入要求:游戏测试不止一个,对于每个游戏测试,输入学生人数N,开始时每个学生手中的糖果数分别为多少(EVEN),输入学生人数为"0"时,测试结束.
输出要求:对每个游戏测试,输出老师吹了几次哨后,学生手中的糖果数相同,并且在同一行输出学生手中相同的糖果数是多少.
标准输入:6
     36
     2
     2
     2
     2
     2
     4
     2
     4
     6
     8
标准输出:15 14
     4   8


    所解输出和实例输出有所不同,主要是老师吹哨次数的不同:
#include  < iostream >
using   namespace  std ;


void  arun( int   * a,  int  nlen,  int   * n,  int   *  how)
{
    
int  j , t1, t2;
    
int  i  =   0 ;
    
while
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值