Loading... 首先,我们能知道 f(1, k) = 0,然后看 f(2, k) 是怎么来的。 比如 f(2, 1),我们知道会删除掉第一个数,然后就变成 f(1, 1),这个时候相对于原本的索引有什么样的变化呢? 【0】【1】 【】【1】 上面的1,在 f(1, 1) 是被看作 0 的,因为是从第 k+1 个数开始被算作 0 了,那么反推回原本的索引应该是 (f(1, 1) + 1) % 2,也就是 1。 那么我们可以推导出 $f(n, k) = (f(n-1, k) + k)\mod{n}$ ```go func iceBreakingGame(num int, target int) int { res := 0 for i := 1; i <= num; i++ { res = (res + target) % i } return res } ``` Last modification:July 10, 2025 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 如果觉得我的文章对你有用,请随意赞赏