约瑟夫环
剑指offer62 约瑟夫环
f(n,m) = (f(n-1,m)+m)%n
func lastRemaining(n int, m int) int {
//反复计算下标在上层的下标位置
//例如 0,1,2,3 n=4,m=2,第一次去除1后剩余2,3,0 2的位置下标0在上层的下标为(0+m)%4=2
x:=0 //1个数则下标为0
for i:=2;i<=n;i++{
x = (x+m)%i //一个数时下标0在2个数时候对应的下标为 (0+m)%2
}
return x
}