zoukankan      html  css  js  c++  java
  • 解题 12+34+……+m

    题目:求以下表达式的值, 1-2+3-4+……+m

    一接触此题目我第一想法就是通过循环来实现,为方便测试使用javaScript语言来编写

    如代码:  

     function foo1(v)
        {
            var sum=0;
            for(var i=0;i<v+1;i++)
            {
                if(i%2>0)
                {
                    sum+=i;
                }
                else
                {
                    sum-=i;
                }
            }
            return sum;
        }

    后面想想找一下数学规律,完全可以通过一个公式来计算的,

    [

    当为奇数时:值等正数,即为m/2+1的值

    当为偶数时:值为负数,即为m/2*-1

    ]代码如下:

        function foo1(v)
        {           
               var sum=0;
               if(v%2>0)
               {
                    sum=Math.ceil(v/2); //取整
               }
               else
               {
                    sum=v/2*-1;
               }
              return sum;
        }
    

    以前学的数学知识差不多都忘了,搞个东西总想使用递归或循环来实现算法,却从来都没有想到找规律,寻找公式,以后还是要好好学习数学啊,

  • 相关阅读:
    indexOf & lastIndexOf
    document.referrer
    函数组合
    v-model绑定vuex中的数据
    图片懒加载
    flex布局问题
    js常见错误类型
    es5/es6继承的区别
    合并两个有序数组
    lettcode 90 子集II
  • 原文地址:https://www.cnblogs.com/qingyi/p/1965603.html
Copyright © 2011-2022 走看看