console.log("--------------------------");
console.log(" 经典约塞夫环算法题 ");
console.log("--------------------------");
const readline = require("readline");
const read = readline.createInterface({
input: process.stdin,
output: process.stdout
})
let N = 0,K = 0;
console.log("请输入参赛人数,初始位置和死亡位置并以空格隔开!")
read.on("line",(input)=>{
let arr = input.split(" ");
N = parseToArr(Number(arr[0]),Number(arr[1]));
K = Number(arr[2]);
console.log(arr[0],Number(arr[1]))
read.close();
})
read.on("close",()=>{
console.log(N)
josephus(N)
})
const josephus = (N) =>{
console.log(N)
const luck = N.filter((item,index)=>(index+1)%K!==0);
if(luck.length>=K){
josephus(luck)
return;
}
console.log(luck)
}
const parseToArr = (N,P) => {
let i = P, arr = [], _ = 0;
while(_<N){
arr.push(++_);
}
if(i!=arr[0]){
for(let j = 0; j < i;j++){
arr.push(arr.shift(arr[j]))
}
}
return arr;
}
经典约塞夫环算法题 nodejs
最新推荐文章于 2022-08-30 22:13:56 发布