编辑代码

//第一个字符:R                  
//第二个字符:BR
//第三个字符:RBBR
//第四个字符:BRRBRBBR
//第五个字符:RBBRBRRBBRRBRBBR
//第i个字符=i-1号字符串取反+i-号字符串
//第一个字符串第1个字符  ---R
//第二个字符串第2个字符  ---R
//第三个字符串第3个字符  ---B
//第四个字符串第6个字符  ---B   ---下表为7的字符
//第五个字符串第8个字符  ---B   ---下表为8的字符

// 输出描述:
// 输出T行表示答案:
// 输出“blue”表示是字符B
// 输出“red”表示是字符R


function exportStr(arr){//t表示T组用例,arr每行包含n,k;n:表示第n个字符串,k表示下表为K的字符

    for(let i = 0; i<arr.length; i++){
        arr[i]
        
        //计算反转几次
        let reversNum = reversNumber(arr[i][0],arr[i][1])
        // if(maxlength === 1 ||(arr[i][1]+1) < (maxlength/2)){
        //     reversNum = arr[i][0]-1
        // }else{
        //     reversNum = arr[i][0]-2
        // }
    console.log(arr[i],reversNum)
        //反转偶数次还是R,反转奇数次为B
        if(reversNum %2 === 0){
            console.log("red")
        }else{
             console.log("blue")
        }
    }  

}

function reversNumber(n,k){
    console.log(n,k)
    //计算反转几次
    let reversNum = 0
    //计算该行元素长度
    let maxlength  = 2**(n-1)
    if(maxlength === 1 ||(k+1) < (maxlength/2)){
        return n-1
    }else{
        if(n-1 === 1){
            return 0
        }else{  
            reversNumber(n-1,k - maxlength/2)
        }
    }
}
// exportStr([[1,0],[2,1],[3,2],[4,6],[5,8]])
exportStr([[5,8]])