1. ホーム
  2. javascript

[解決済み] 3桁の数字2つの積からなる回文で最大のものを求めよ - Javascript

2022-01-31 19:54:23

質問

どなたか、このコードのどこがおかしいか教えてください。最大の palindrome 3桁の数字2つの積から作られる。

function largestPalindrome(){

    for(var i =999; i>100; i--){
        for(var j = 999; j>100; j--){
            var mul = j*i;
            if(isPalin(mul)){
                return i * j;
            }
        }
    }
}

function isPalin(i){
    return i.toString() == i.toString().split("").reverse().join("");
}

console.log(largestPalindrome());

この回答は、私の質問に近いものでした。 しかし、私はループを行う方法は、私に最大の製品を返すべきだと感じています。

どのように解決するのですか?

をチェックするため、正しく動作しません。 999*999 で、次に 999*998 では 999*997 くらいになるまで 999*583 . をチェックしませんが 997*995 またはトップに近いもの より大きな数字を生成する

function largestPalindrome(){

    var arr = [];    
    for(var i =999; i>100; i--){
        for(var j = 999; j>100; j--){
            var mul = j*i;
            if(isPalin(mul)){
                arr.push(j * i);
            }
        }
    }

    return Math.max.apply(Math, arr);
}

function isPalin(i){
    return i.toString() == i.toString().split("").reverse().join("");
}

console.log(largestPalindrome());

別のアプローチも紹介します。 をすべて保存します。 palindrome 3つの数字によって生成される配列を作成し、その配列に Math.max on the array を取得し、最大の palindrome