用python来解决一个站队报数问题
1、先用1到300来代替这300个人。
2、根据c,来构造一个序列a。可以看出来,这个a里面的元素全是3的倍数。
3、根据a来删除c里面对应序号的元素,结果删的一塌糊涂。我的目标是把序号是3的倍数的元素删掉,按理说第一轮就应该把c里面3的倍数全部删掉。
4、实际上,应该倒过来删。
5、可是,上面还是有一个300没有删掉。最后一个元素需要谨慎对待,如果c的元素个数是3的倍数,需要删掉c的最后一个元素,否则不删c的最后一个元素。
6、用while循环来处理这个问题。
7、处理一个一般的问题:现有v个学生站成一排,从第一个开始1至u报数,全部报完后,凡是报到u的倍数的人退出队伍,其余的人向前靠拢站芤晟踔肿成新的一排,再按此规则继续进行,直到若干轮后只剩下最后u个人为止。请问最后剩下的u人中的第u个人,他最初在什么位置?比如,当u=8,v=1000的时候,答案是927。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:22
阅读量:96
阅读量:87
阅读量:23
阅读量:71