题解 | 约瑟夫环
约瑟夫环
https://www.nowcoder.com/practice/e417cfe32c74416ca38247f619ddb322
public class Program {
public static void Main() {
string[] line= System.Console.ReadLine().Split(" ");
int n = int.Parse(line[0]);
int k = int.Parse(line[1]);
int m = int.Parse(line[2]);
try{
int[] duilie = new int[n];
for(int i=0;i<n;i++){
duilie[i]=1;
}
int num =0;
int people= duilie.Length;
//报数
for(int y=k;y<duilie.Length;y++){
if(people==1){
for(int res=0;res<duilie.Length;res++){
if(duilie[res]==1){
System.Console.WriteLine(res);
break;
}
}
break;
}
if(duilie[y]==1){
//可以报数
num+=1;//报数
if(num==m){
//出局 计数重置
duilie[y]=0;
num=0;
people-=1;
if(y==(duilie.Length-1)) y=-1;
continue;
}else{
//继续
if(y==(duilie.Length-1)) y=-1;
continue;
}
}else if(y==(duilie.Length-1)){
y=-1;
}
}
}catch(System.Exception ex){
System.Console.WriteLine(ex.Message);
}
}
}
查看10道真题和解析
三奇智元机器人科技有限公司公司福利 130人发布