最大的回文算法 - JS

时间:2016-10-13 07:46:49

标签: javascript algorithm

我几乎已经解决了这个问题......这是项目Euler的4th problem,答案应该是906609,但我一直得到580085.我会感激任何帮助。

代码:

function largestPalin() {
  var a, b, c;

  for (a = 999; a > 100; a--) {
    for (b = a; b > 100; b--) {
      c = a * b;
      if (palinCheck(c)) {
         return c;
      }
    }
  }

  function palinCheck(c) {
    return c == c.toString().split("").reverse().join("");
  }

}

console.log(largestPalin());

1 个答案:

答案 0 :(得分:3)

如果它比你找到的最后一个结果大,你应该保存它,而不是返回你找到的第一个结果,而不是在结尾处返回它。

var largestFound = 0;
for (a = 999; a > 100; a--) {
    for (b = a; b > 100; b--) {
        c = a * b;
        if (palinCheck(c)) {
            if (c > largestFound) {
                largestFound = c;
            }
        }
    }
}
return largestFound;