JS常見演算法-累加/累積
阿新 • • 發佈:2019-02-01
累加:將一系列的資料加到一個變數裡面。最後得到累加的結果。
empty
var sum = 0;
for(var i = 1;i <= 100;i++){
sum += i;
}
empty
var h = 100;
var sum = 0;
for(var i = 0;i < 10;i++){
h = h / 2;
sum += h;
}
sum = sum * 2 + 100;
累積:將一系列的資料乘積到一個變數裡面,得到累積的結果。
empty var n = 100; var result = 1; for(var i = 1;i <= n;i++){ result *= i; }
一般形式:
累加:v += e;
累積:v *= e;
v代表累加和/累積,e代表累加/累積項
演算法要點:
(1)初始化
初始化v:
累加:v = 0;
累積:v = 1;
e的初始化,如果累加/積項比較複雜,可能會分解為幾個子項分別初始化,比如計算圓周率的問題,累加項分解為符號、分子和分母三部分
(2)迴圈的控制條件
一種是固定次數,比如計算彈跳距離的問題、計算數列前20項之和的問題,次數不固定,而是要滿足某個條件:計算圓周率問題要求最後一項的絕對值要小於10-6。
(3)確定累加/積項
比如數列的前20項之和,是將當前的分子分母之和作為下一次的分母,當前的分母作為分子;
再比如求圓周率問題,是將符號取反,分母