既然是要求解到第一百项,那么事情就不必要搞得那么麻烦。
表达式中,所有为奇数项项都是正数,偶数项都是负数,而奇数项和偶数项各有50项我们不妨利用
等差数列求和公式,分别求出奇数项和偶数项
绝对值的和。再用奇数项绝对值的和减去偶数项绝对值的和即可。
还有更简单的方法,从第一项开始一次如此:(1-2) + (3-4) +(5-6) +....+ (99-100) ,发现如果将每个括号看作一项,那么每项都是-1 ,一共有50项,那么结果就很明显了,是 -50 。
那么将结论推广一下,对于n项的这个算式的结果求解,如果n为偶数,那么结果就是 -(n/2),若n为奇数,那么结果就是 n - n/2(n/2向下取整)
那么对于任意项数n的算式求解代码:
#include <stdio.h>
int main(void)
{
int n;
int sum;
scanf("%d", &n);
if (n % 2 == 0)
{
sum = n / 2 * -1;
printf("%d\n", sum);
}
else
{
sum = n - n / 2;
printf("%d\n", sum);
}
return 0;
}