java有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
时间: 2023-06-05 14:48:08 浏览: 96
有N个人围成一环形圈,第一个人从1开始报数,报道M的人出列,直到最后一个同学,请写出算法。.txt
这是一道经典的约瑟夫问题。最后留下的人的编号可以通过数学公式求得,公式为:
f(n,m) = (f(n-1,m)+m) % n
其中,n为总人数,m为报数到几的人退出。初始情况下,f(1,m) = 。
对于本题,n个人围成一圈,所以最后留下的人的编号为:
f(n,3) = (f(n-1,3)+3) % n
其中,初始情况下,f(1,3) = 。
因此,最后留下的人的编号与n有关,需要具体输入n才能得到答案。
阅读全文