所谓的水仙花数是指一个n位的正整数其各位数字的n次方的和等于该数本身

例如例如153=1^3+5^3+3^3,153是一个三位数,153是一个三位数

输入描述:

第一行输入一个整数N,表示N位的正整数N在3-7之间包含3,7

第二行输入一个正整数M,表示需要返回第M个水仙花数

输出描述:

返回长度是N的第M个水仙花数,个数从0开始编号

若M大于水仙花数的个数返回最后一个水仙花数和M的乘积

若输入不合法返回-1

示例

输入:

3

0

输出:

153

说明:

153是第一个水仙花数

输入:

9

1

输出

-1

let N = 7
let M = 3
function test(N) {
    let arr = []
    for(let i = pow(10,N-1);i<pow(10,N);i++){
        // console.log(i);
        let sum = 0
        let bit = 0
        let x= Number(i)
        // let num = String(i)
        while( x ){ // 取各位,求和
            bit = x % 10;
            sum += pow(bit, N);
            x = parseInt(x/10);
        }
        // for(let j=0;j<num.length;j++){
        //     sum+= pow(Number(num[j]),N)
        // }
        // console.log(sum);
        if(sum===i){
            arr.push(i)
        }
    }
    if(M>arr.length){
        console.log(arr[arr.length-1]*M);
    }else {
        console.log(arr[M]);
    }

}

function pow(x,y){
    let result = 1
    for(let i=0;i<y;i++){
        result*=x
    }
    return result
}
test(N)