求小于1000的所有自然数中,可被3或5整除的数字之和。

var n = 0;
for(var i = 0;i<1000;i++){
    if(i%3==0 || i%5==0){
        n+=i;
    }
}
console.log(n);

进行了1000的循环计算,效率不高,是否还有更好的方法呢 ?

在此召唤大神的降临。。。。。



新添答案:(错误答案)

var num = 1/2* ( ( ( parseInt(1000/3) )*(1000%3 + 3) )
 + ( ( parseInt(1000/5) )*(1000%5 + 5) )
 - ( ( parseInt(1000/15) )*(1000%15 + 15) ) )
 
 console.log(num);

正确的应该是这样:

var n = 1000;
var num = 1/2*(3+n-n%3)*int(n/3)+1/2*(5+n-n%5)*int(n/5)-1/2*(15+n-n%15)*int(n/15);
 console.log(num);


你可能感兴趣的:(求小于1000的所有自然数中,可被3或5整除的数字之和。)