2016-04-24 28 views
1

好吧,也許是一個noob和ridicolous的問題,但我有一個小問題。Javascript,乘以最後一個循環編號

我做了一個簡單的for循環和一個特定的方式來總結一些數,我需要總結一個數的pow。這一切都很好,如果我不使用IncrementPercent,所以如果IcrementPercent是0,我得到這個:

test - divider: 2 
test - divider: 6 
test - divider: 18 
test - divider: 54 
test - divider: 162 
test - divider: 486 
test - divider: 1458 

這對我來說是正確的,但如果我激活在10 IncrementPercent,所以每次的數量必須1.1遞增等等,我有這個

test - divider: 2.2 
test - divider: 6.6000000000000005 
test - divider: 19.8 
test - divider: 59.400000000000006 
test - divider: 178.20000000000002 
test - divider: 534.6 
test - divider: 1603.8000000000002 

而且這不是我正確的,因爲我需要這個

test - divider: 2.2 
test - divider: 7.26 
test - divider: 23.958 
test - divider: 79.0614 
... and so on 

這樣的想法很簡單,我有一個起始號,那種情況下我s 2,所以我需要第一次乘3,第二次3 * 3,第三次3 * 3 * 3 ...

但是,如果我激活IncrementPercent我想這樣做:

2*1.1 -> 2.2 
2.2*3*1.1 -> 7.26 
7.26*3*3*1.1 -> 23.958 

所以每次都是我以前的數字,我必須乘以!

這是式,我已經:

IncrementPercent = 10; 
mult1 = 2; 
mult2 = 3; 
Game = 7; 

var divider = 1 + (mult1 * (1 + (IncrementPercent/100))) - mult1; 
for (i = 0; i <= (Game - 1); i++) { 
var divider = mult1 * Math.pow(mult2, i) * (1 + (IncrementPercent/100)); 
console.log('test - divider: ' + divider); 
} 
+0

2.2 * 3 * 1.1 - > 7.26 –

回答

1

你被過分複雜:

var incrementPercent = 10, 
    number = 2, 
    factor = 3, 
    iterations = 7; 
for (var i = 0; i < iterations; ++i) { 
    number *= 1 + incrementPercent/100; 
    console.log(number); 
    number *= factor; 
} 
+0

還要考慮'totalFactor =因子*(1 + incrementPercent )/ 100',然後在循環的每次迭代中只執行一次乘法。 – Oriol

+0

Tnx爲你的幫助,但我也需要返回迭代的總和,所以如果我使用1次迭代總數爲2,對於2次迭代總數是8等等。我不是程序員對不起。 –