刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
Josephus问题是经典的顺序表问题,主要使用一维数组作为数据结构进行求解。整个算法过程是一个从n到1的循环。
对于每个空填的内容,解释如下:
(1)报名起始位置,应该填“s-1”,因为从第s个人开始报数,而数组索引是从0开始的,所以需要减1。
(2)在循环中,当i等于k时,表示当前人数已经只剩下k人,此时应该重新开始报数,所以填“i==k”。
(3)寻找出局位置,应该填“(i+m-1)%k”。这是通过计算当前位置加上m-1后取模k得到的,表示在剩余k人中数到第m个人的位置。
(4)数组A的元素要循环向右移动一个位置,所以填“A[j]=A[j+1]”,即将当前位置的元素值赋给下一个位置的元素。
(5)将出局者的位置交换到第k-1位置,所以填“A[k-1]=tmp”,即将暂存的值赋给第k-1位置。
本文链接:请填写完整的Josephus问题的C语言函数,以求解给定n个人从第s个人开始报数到第m个人出局的序列
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
