题解 | 约瑟夫环
约瑟夫环
https://www.nowcoder.com/practice/e417cfe32c74416ca38247f619ddb322
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int k = in.nextInt();
int m = in.nextInt();
StringBuffer sb = new StringBuffer();
for(int i = 0; i < n; i++){
sb.append((char)('A' + i));
}
int currentindex = k;
while(sb.length() > 1){
currentindex = (currentindex + m - 1) % sb.length();//核心步骤
sb.deleteCharAt(currentindex);
if(currentindex >= sb.length()){
currentindex = 0;
}
}
int king = sb.charAt(0) - 'A';//核心
System.out.print(king);
}
}

查看21道真题和解析