Shane - 1 year ago 82

Javascript Question

Can anyone tell me what's wrong with the code. Find the largest

`palindrome`

`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());

This answer was close to my question

but still i feel the way i am doing the loop it should return me the largest product.

Answer Source

Yours doesn't work properly since it checks `999*999`

, then `999*998`

, then `999*997`

until it reaches about `999*583`

. While it doesn't check `997*995`

or something closer to the top
which generates a larger number

```
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());
```

**Here is another approach**, store all `palindrome`

generated by 3 numbers in an array, then use `Math.max on the array`

to get the largest `palindrome`