1
var num = 10234657899876543299999991;
var strNum = num.toString();
var total = 1;
var greatest = 1;
for(var start = 0; start <= strNum.length; start ++){
for(var i = start; i <= start + 3; i ++){
total *= strNum.charAt(i);
}
if(total > greatest){
greatest = total;
}
total = 1;
}
alert(greatest);
私のコードは、var numをループし、4つの連続する数字のうち最も高い倍数を返すように設計されています。この例では、答えはvar numの最後に向かって9行目のブロックではっきりと4 x 9です。しかし、何が起こっているのかは、複数の開始点が少なくなると(つまり、最初の2つのブロックと2つの8のブロックの後)、結果は保存されなくなり、8 x 9 x 9 x 8の結果が戻ってきた。どのようにして、var numによって大きな倍数を探し続けるようにコードに指示することができますか?プロジェクトオイラー8 Javascript
ブリリアント、ありがとう!私はそれがとても簡単な修正であったことを嬉しく思います。 – Jackets82