elk*_*med 6 javascript math for-loop
回文数字两种方式相同.由两个2位数字的乘积制成的最大回文是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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码有问题吗?!无论如何,我得到的答案是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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这回来了
913*993 = 906609
作为最大的结果.