N表記JavaScript

5899 ワード

function solution(N, number) {
    let arr = Array.from({length: 8}, () => new Set());
    
    for(let i = 0; i< arr.length; i++) {
        arr[i].add(+N.toString().repeat(i+1));
        for(let j = 0; j < i; j++) {
            for(let arg1 of arr[j]) {
                for(let arg2 of arr[i-j-1]) {
                    arr[i].add(arg1+arg2)
                    arr[i].add(arg1-arg2)
                    arr[i].add(arg1/arg2)
                    arr[i].add(arg1*arg2)
                }
            }
        }
        if(arr[i].has(number)) return i+1
    }
    
    return -1;
}
N使用回数の最大値が8を超えると-1を返すため、長さが8の配列を作成し、要素をsetとして格納します.
N使用回数が1~8のすべての場合、一致する数値が発生した場合は値を返し、存在しない場合は-1を返します.