求1-2+3-4+5-6+7+…+99-100 C语言编程 下面程序哪里错了#include main(){int a,s=0;for(a=1;a

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 19:39:47
求1-2+3-4+5-6+7+…+99-100 C语言编程 下面程序哪里错了#include main(){int a,s=0;for(a=1;a

求1-2+3-4+5-6+7+…+99-100 C语言编程 下面程序哪里错了#include main(){int a,s=0;for(a=1;a
求1-2+3-4+5-6+7+…+99-100 C语言编程 下面程序哪里错了
#include
main()
{
int a,s=0;
for(a=1;a

求1-2+3-4+5-6+7+…+99-100 C语言编程 下面程序哪里错了#include main(){int a,s=0;for(a=1;a
既然是要求解到第一百项,那么事情就不必要搞得那么麻烦.表达式中,所有为奇数项项都是正数,偶数项都是负数,而奇数项和偶数项各有50项我们不妨利用等差数列求和公式,分别求出奇数项和偶数项绝对值的和.再用奇数项绝对值的和减去偶数项绝对值的和即可.
还有更简单的方法,从第一项开始一次如此:(1-2) + (3-4) +(5-6) +.+ (99-100) ,发现如果将每个括号看作一项,那么每项都是-1 ,一共有50项,那么结果就很明显了,是 -50 .
那么将结论推广一下,对于n项的这个算式的结果求解,如果n为偶数,那么结果就是 -(n/2),若n为奇数,那么结果就是 n - n/2(n/2向下取整)
那么对于任意项数n的算式求解代码:
#include
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;
}