javascript - Javascript 中最大的回文积

标签 javascript math for-loop

回文数的两种读法都一样。两个两位数的乘积构成的最大回文数是9009 = 91 × 99。

找出由两个 3 位数的乘积组成的最大回文。

我写了这段代码来寻找解决方案,但 Project Euler 网站上的答案仍然不正确:

function Palindromic(x) {
    var pal = parseInt(x.toString().split('').reverse().join(''));

    if (pal === x)
        return true;
    else
        return false;
}

var x = 100,
    y = 100,
    product = x * y;

for (x; x <= 999; x++) {
    for (y = x; y <= 999; y++) {
        product = x * y;
        if (Palindromic(product)) {
            console.log(x + '*' + y + '=' + product);
        }
    }
}

我的代码有问题吗?! 不管怎样,我得到的答案是 888888 来自 924*962

最佳答案

我不认为,您的代码存在真正的问题。你只是不过滤最大的产品,这不一定是你最后的输出。只需为最大的产品添加额外的支票,例如像这样:

var x, y, product, max = 0;

for (x = 100; x <= 999; x++) {
    for (y = x; y <= 999; y++) {
        product = x * y;
        if (Palindromic(product)) {
          if( max < product ) { // this is new
            max = product;
            console.log(x + '*' + y + '=' + product);
          }
        }
    }
}

返回

913*993=906609

作为最大的结果。

关于javascript - Javascript 中最大的回文积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18842861/

相关文章:

javascript - 如何使用 Javascript 为动态创建的元素添加选项卡索引?

javascript - 如何获取数组原型(prototype)图中的当前索引?

c++ - 我的数学有什么问题?

c# - 点靠近对角线

c - MATLAB 代码输出

linux - 将列追加到另一个文本文件中

java - 在java中替换特殊单词的最佳方法

javascript - 使用 map 功能时单选按钮选择问题

javascript - 我如何区分 Meteor 中的连接关闭和刷新?

python - 用户数据的基本 for 循环问题