23-转圈圈报数注释改进版

这篇博客介绍了一种转圈圈报数的算法,即n个人围成一圈,从第i个人开始按1到k的顺序报数,报到k的人出队。通过画图理解问题并转化为代码,利用数组renma记录每个人的报数状态,当报到k时输出对应序号并重置状态。循环继续直至队列人数为0,过程中注意对人数和报数的限制条件处理。
摘要由CSDN通过智能技术生成

        转圈圈报数,n个人围成一圈,第i个人开始依次报数,报到k时的人出队,求出队的序号。

  1.  先画个草稿,画一个圈,原先有n个人,围城一圈,然后从第i个人开始报数,从1报到k,每当报数为k时,该人出去,n--,随后重新从1报数.
  2. 转化为代码思路——先看最后索要实现的东西,第i个人,从1到k报数,当报数的人报k时,出队,从1到k进行循环,那么第i个报数的人,换到下一个为i++,另外报数的人单独可为一个数据,因此报数的人设成一个数组renma,并依次赋值其代号为1到n。因此最终循环为报数为循环主体,即为baoshu,当前所baoshu的人renma[i-1]也相应增加即i++,当报到k时,renma[i-1]直接输出即可,再立马赋值为0,表示该人已经出去。由于该人已经出去,所以当再次循环到这个位置时,所报数为上一次报数即可,相当于等待。
  3. 此外,开始报数时,看一下限制条件,人数最大为max,所以当i>max时,i变为1(从1开始报),当再次排到renma[i-1]==0时&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔心小韩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值