1. 程式人生 > >JS常見演算法-累加/累積

JS常見演算法-累加/累積

累加:將一系列的資料加到一個變數裡面。最後得到累加的結果。

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項之和,是將當前的分子分母之和作為下一次的分母,當前的分母作為分子;

再比如求圓周率問題,是將符號取反,分母

+2,然後得出下一項。