小孩围成一圈,假定一个任意数m

从第一个小孩开始,一个接着一个围成圆圈。思路为首先增加第一个小孩,然后增加一个小孩,并跟在前面的小孩后面,最后第一个小孩中在最后一个小孩后在增加一个小孩时,星池starpool 增加前的指针位置和改变指针的操作顺序很重要,要特别注意。增加最后一个小孩后,还要调整最后一个小孩得指针,保证第一个小孩跟在最后一个小孩后。但在使用for循环中,当约瑟夫问题中的k=1时计算会出现错误,这是因为for循环至少执行0次,而我们需要它至少执行一次,因此后来在调试过后使用了.

该小孩便是胜利者,https://www.starpool.cn 输出这个小孩(同时删除,这时候C++自带的new 和delete就显得非常好用)根据前面的分析,在增加输出代码,得到如下程序(由于要求增加姓名和学号信息,我将结构体定义和遍历小孩部分稍作修改):

你可能感兴趣的:(前端)