JavaScriptにおける最適なアルゴリズムの選択
コードの問題は、時としてタスクに対して最適ではない解決策が選ばれていることに起因します。
例えば、1から1000000までの整数の合計を見つけるというタスクがあるとします。
与えられた課題を解決してみましょう:
let sum = 0;
for (let i = 1; i <= 1000000; i++) {
sum += i;
}
console.log(sum);
何が問題なのでしょうか?実は、この課題には数学的な解法が存在します。
この解法は、ほとんどリソースを必要としません!プログラムにしてみましょう:
let n = 1000000;
let sum = n * (n + 1) / 2;
console.log(sum);
教訓:リソースを消費するタスクを解決する前に、その解決策として既成の数式や数学的なアプローチがないか必ず確認してください。
1から1000までの間で、5で割り切れる数の個数を求めてください。
1から1000000までのすべての数を書き出すのに必要な桁数を求めてください。