根据值进行x次计算

时间:2013-02-04 20:35:30

标签: javascript math loops formulas

Math.floor((1600 * Math.pow(1.4, 19)));  // = 956208

我正在做一个游戏的粉丝,并试图计算你需要多少法力来获得+技能上面的公式从19-20技能计算

但是我需要循环计算x次,这样你就可以从x计算(上面的计算中的19)到每次需要提高x + 1,直到它达到最终值y并加上来自的回答每个循环如下

我有两个文本框,我从

中取值

956208 + 1338692 + 1874168 + 2623836 + 3673371 + 5142719 = 15608994因此最终会做出19到25之类的事情

2 个答案:

答案 0 :(得分:2)

如果我正确理解问题(有点不清楚......)你想要这样的东西。

var from = 19;
var to   = 25;
var totalMana = 0;

for (var i = from; i <= to; i++) {
  totalMana += Math.floor(1600 * Math.pow(1.4, i));
}

console.log(totalMana); // 22,808,801

您只需从较低的值循环到较高的值,每次评估您的公式并将其添加到每次迭代中持续存在的累积变量。


另外,只是你知道,你正在用微积分浸泡你的脚趾。你得到summation of a finite series.数学很有趣,即使你不知道你这样做:)

答案 1 :(得分:0)

要把这个答案放在一边好玩:

// generate an array with each value in the series, where callback evaluates
// the value at each step
Math.series = function(from, to, callback){
    var out = [];
    for (var i = from; i <= to; i++)
        out.push(callback.call(null, i));

    return out;
};

// add the things in an array.
Math.sum = function(arr){
    var sum = 0; 
    for (var i = 0; i < arr.length; i++)
        sum += +arr[i];

    return sum;
};

使用这些实用程序功能,您可以像单行一样完成任务:

Math.sum(Math.series(19,25,function(i){return Math.floor(1600*Math.pow(1.4,i));}));