在javascript中,如何在循环中有效地处理大数?

时间:2015-05-17 23:16:23

标签: javascript math for-loop modulus largenumber

我的指示是“对于我从1到n,做我%m并返回总和。你需要有一点聪明的表现,因为n可能是一个非常大的数字”

下面的程序适用于小数字。如何使用大数字来提高效率?

function f(n, m) {
    var summ = 0;

    for (var i = 1; i <= n; i++) {
        summ += i % m;
    }

    return summ;
}

1 个答案:

答案 0 :(得分:0)

要查看发生的事情,请考虑部分和,首先从0到m-1之和,从m到2m-1,2m到3m-1之和等。

m=5;
for(j=0;j<5;++j) {
    partial = 0;
    for(i=j*5;i<j*5+5;++i) {
        partial += i % m;
        console.log( i , partial );
    }
}

要将事情缩小到一行,请查看Triangular Numbers