这是一道ACM基础题;
输入n,计算f(n) = - 1 + 2 - 3 + … + ( - 1)^n*n
问题分析:可使用列表法用数组存放结果,获取n后通过数组直接输出;或者分n为正数与负数两种情况讨论;
程序;
#include<stdio.h>
typedef long long LL;
int main()
{
LL n,sum=0;
scanf("%lld",&n);
if(n%2==0)
{
sum=n/2;
}else
{
sum=(n-1)/2-n;
}
printf("%lld",sum);
return 0;
}
它是分两种情况就计算了;
先手算看一下;
f(n) = - 1 + 2 - 3 + … + ( - 1)^n*n
(-1)^4*4 = 4
f(4) = -1 + 2 - 3 +4 = 2
(-1)^5*5 = -5
f(5) = -1 + 2 - 3 +4 -5 = -3
(-1)^6*6 = 6
f(6) = -1 + 2 - 3