一共N个人,从1开始轮流报数,报k的人淘汰,剩余的继续从1开始报数直至最终剩下一个人
import java.util.LinkedList;
import java.util.List;
public class yuesefu {
public static void main(String[] args) {
System.out.println(ysf(41,3));
}
// N为总人数,报k的人淘汰
public static int ysf(int N, int k){
List<Integer> list = new LinkedList<>();
for (int i = 1; i <= N; i++) {
list.add(i);
}
int i = 0,j = 1;
while(list.size()>1){
// System.out.println(list);
if(j==k){
list.remove(i);
j=1;
}else{
i = (i+1)%list.size();
j++;
}
}
return list.get(0);
}
}