作业帮 > 数学 > 作业

设计一个函数,计算s=1-2+3-4+5-6+…±N的值,要求时间复杂度为O(1),越简洁独特越好

来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/11 04:08:01
设计一个函数,计算s=1-2+3-4+5-6+…±N的值,要求时间复杂度为O(1),越简洁独特越好
设计一个函数,计算s=1-2+3-4+5-6+…±N的值,要求时间复杂度为O(1),越简洁独特越好
可以用公式的
观察到
1-2=-1
3-4=-1
5-6=-1
如果n是奇数的话
答案是-(n-1)/2+n
如果N是偶数的话答案是-n/2
#include
#include
int sum(int n)
{
if(n%2==1)return -(n-1)/2+n;
else return -n/2;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",sum(n));
return 0;
}