Javascript,乘以最后一个循环数

时间:2016-04-24 12:20:15

标签: javascript for-loop multiplying

好吧,也许是一个菜鸟和荒谬的问题,但我有点问题。

我做了一个简单的for循环,以特定的方式求和一些数,我需要求和一个数的幂。如果我不使用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

所以这个想法很简单,我有一个起始编号,那个例子是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);
}

1 个答案:

答案 0 :(得分: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;
}