社团共有 num 位成员参与破冰游戏,编号为 0 ~ num-1。成员们按照编号顺序围绕圆桌而坐。社长抽取一个数字 target,从 0 号成员起开始计数,排在第 target 位的成员离开圆桌,且成员离开后从下一个成员开始计数。请返回游戏结束时最后一位成员的编号。
示例 1:
输入: num = 7, target = 4
输出: 1
示例 2:
输入: num = 12, target = 5
输出: 0
提示:
1 <= num <= 10^51 <= target <= 10^6
解题答案
class Solution {
public int iceBreakingGame(int num, int target) {
if (num == 1) return 0;
return (iceBreakingGame(num - 1, target) + target) % num;
}
}
class Solution {
public int iceBreakingGame(int num, int target) {
int dp = 0;
for (int i = 2; i <= num; i++) {
dp = (dp + target) % i;
}
return dp;
}
}