用python来解决一个站队报数问题

2025-04-17 11:09:35

1、先用1到300来代替这300个人。

用python来解决一个站队报数问题

2、根据c,来构造一个序列a。可以看出来,这个a里面的元素全是3的倍数。

用python来解决一个站队报数问题

3、根据a来删除c里面对应序号的元素,结果删的一塌糊涂。我的目标是把序号是3的倍数的元素删掉,按理说第一轮就应该把c里面3的倍数全部删掉。

用python来解决一个站队报数问题

4、实际上,应该倒过来删。

用python来解决一个站队报数问题

5、可是,上面还是有一个300没有删掉。最后一个元素需要谨慎对待,如果c的元素个数是3的倍数,需要删掉c的最后一个元素,否则不删c的最后一个元素。

用python来解决一个站队报数问题

6、用while循环来处理这个问题。

用python来解决一个站队报数问题

7、处理一个一般的问题:现有v个学生站成一排,从第一个开始1至u报数,全部报完后,凡是报到u的倍数的人退出队伍,其余的人向前靠拢站芤晟踔肿成新的一排,再按此规则继续进行,直到若干轮后只剩下最后u个人为止。请问最后剩下的u人中的第u个人,他最初在什么位置?比如,当u=8,v=1000的时候,答案是927。

用python来解决一个站队报数问题
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢