求javascript脚本语言求出1到100之间所有偶数之和的代码?

 我来答
amwiqviw
2017-07-19 · TA获得超过1524个赞
知道小有建树答主
回答量:1051
采纳率:62%
帮助的人:435万
展开全部
<script>
  var sum = 0;   //定义一个初始值为0的sum变量做为累加器
    for(var i = 2;i <= 100;i+=2){ 
   /*
   定义一个变量i存储当前的偶数;当i小于等于100时执行下面的累加语句
   ;执行完累加语句之后i变量自增2继续判断-累加。
   */
    sum += i; //将i的值累加到sum中
  }
  console.log(sum)  //最后在控制台输出求和结果,2550
<script>

stlwdybb
2017-08-16 · TA获得超过329个赞
知道小有建树答主
回答量:269
采纳率:71%
帮助的人:73.5万
展开全部

我们以通用型自然整数n到m之间的所有偶数之和来讲解。(n<m )

要求偶数之和,我们需要先判断一个数是偶数还是奇数,偶数是能被2整除的数。如果是偶数就进行相加运算。由于每次相加会产生一个新的值,所以我们需要一个变量来记录每次相加的值,便于下次再计算。

现在以代码来讲解:

//以for循环为例
function sumOdd( n, m ) { 
    var i, r = 0;    //r用于记录每次相加的结果
    for( i = n; i < m + 1; i++ ) {
        if( i % 2 === 0 ) { //%模运算即取余,如果余数等于0,说明是偶数
           r += i;
        }
    }
    return r;//计算完毕返回结果
}
sumOdd( 1, 100 );//2550

//以递归方式为例
//递归调用不推荐使用,当数据很大的时候,会容易栈溢出。
//这里只是作为例子讲解一下不同的方法
function sumOdd( n, m ) {
    if( n === m ) {    //当n和m相等时,结速递归
        if( n % 2 === 0 ) { //判断是否为偶数,返回相应的结果完成递归运算
            return n;
        } else {
            return 0;    
        }
    }
    if( n % 2 === 0 ) {
        return n + sumOdd( n + 1, m );
    } else {
        return sumOdd( n + 1, m );
    }
}
sumOdd( 1, 100 );//2550
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Baby_原來
2017-07-26 · TA获得超过3402个赞
知道大有可为答主
回答量:1535
采纳率:94%
帮助的人:504万
展开全部
<script>
  var sum = 0;   //定义一个初始值为0的sum变量做为累加器
  for(var i = 2;i <= 100;i+=2){ //定义初始即为2偶数的循环,最大为100,每次+2,即只循环1-100内的偶数
   sum += i; //起始为偶数,每次+2也为偶数,所以将i的值累加到sum中
  }
  console.log(sum)  //循环完成,计算完毕,最后在控制台输出求和结果,2550
<script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wo是狼wo吃草
2017-07-12 · TA获得超过747个赞
知道小有建树答主
回答量:219
采纳率:50%
帮助的人:136万
展开全部
//定义合值的初始值sum,循环次数i
var sum = 0,i = 2;
//范围是100以内,因此,我们把范围设定在0-100;由于需要偶数,
//我们已知第0-100的第一个偶数是2,接下来的每个偶数只要+2就可以得到。
for(; i <= 100; i+=2){
//每一次循环中把这次i的值加给sum
    sum+=i; 
}
//最后在控制台打印出最终的合值是多少。
console.log(sum)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Whikiey
2017-08-04 · TA获得超过138个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:91.7万
展开全部

最快最直接的方式

function sum_even_1to100() {
    return 2550;
}

使用数学公式

function sum_even_via_math(from, to) {
    return (Math.ceil(from / 2) + Math.floor(to / 2)) * 100 / 2
}

使用循环

function sum_even(from, to) {
    var total = 0;
    for (var i = Math.ceil(from / 2); i <= Math.floor(to / 2)); i+=2) {
     total += i;
    }
    return total;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式