JavaScriptは単純なバージョンのスタック、キュー関数+スタックを実装して、10進数から2進数を実現します+キューイングドラムゲームのアイデアを実現します

単純なバージョンのスタックを実現するJavaScript +スタックを使用して10進数から2進数を実現

//栈结构
class Stack {
    container = [];
    //进栈
    enter(element) {
         this.container.unshift(element)
    }
    //出栈
    leave(element) {
        return this.container.shift(element)
    }
    size() {
        return this.container.length
    }
    value() {
        return this.container
    }
}


let num = 58;
console.log(num.toString(2)) //111010

// 十进制转二进制,注意此处的栈是从头部塞入,输出的顺序才会符合要求

Number.prototype.change = function change() {
    let sk = new Stack;

    let yu = this.valueOf()

    if (yu === 0) return '0'
    while (yu > 0) {
        sk.enter(yu % 2)
        yu = Math.floor(yu / 2)
    }
    return sk.value().join('')

}
console.log(num.change()) //111010

JavaScriptは、単純なバージョンのキュー関数+キューを実装して、太鼓のゲームのアイデアを実装します

队列结构
class Queue {
    container = [];
    //进队列
    enter(element) {
         this.container.push(element)
    }
    //出队列
    leave() {
        return this.container.shift()
    }
    size() {
        return this.container.length
    }
    value() {
        return this.container
    }
}
//击鼓游戏,n个人,m个数
function game(n, m) {
    let qe = new Queue;
    //放入n个人
    for (let i = 1; i < n+1; i++) {
        qe.enter(i)
    }
    //循环到只剩下一个人
    while(qe.size()>1){
        //将非指定数字的人从前面移除,放到队列后面
        for(let i = 0 ; i < m-1;i++){

            qe.enter(qe.leave())
        }
        // 将指定数字的人从前面移除
        qe.leave()
    }
    return qe.value().toString()
}
console.log(game(5,3))
公開された128元の記事 ウォン称賛52 ビュー20000 +

おすすめ

転載: blog.csdn.net/weixin_44523860/article/details/105317406