题目:求以下表达式的值, 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;
}
以前学的数学知识差不多都忘了,搞个东西总想使用递归或循环来实现算法,却从来都没有想到找规律,寻找公式,以后还是要好好学习数学啊,