#include <stdio.h>
int main() {
int n;
scanf("%d",&n);
int i;
int t=-1;
int sum=0;
for(i=1;i<=n;i++){
t=t*(-1);
sum=sum+i*t;
}
printf("%d",sum);
return 0;
} 要不看看我的抽象写法?
#include <stdio.h>
int main() {
int n = 0, sum = 0;
scanf("%d", &n);
/*
* (n - 1) & 1 是用于判断奇偶性的,结果为 1 表示奇数,反之表示偶数。
* 根据题意可知,当 n - 1 为奇数时,n 为负数。
*/
do
{
sum += (n - 1) & 1 ? -n : n;
}while (--n);
printf("%d", sum);
return 0;
}
#include<stdio.h>
int main()
{
int i = 0;
int result = 0;
int n = 0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%2 ==0)
{
result =result-i;
}
else
{
result = result +i;
}
}
printf("%d",result);
return 0;
} #include <stdio.h>
int main()
{
//方法一 分成奇偶部分
// int n = 0;
// scanf("%d", &n);
// int i = 0;
// int sum1 =0, sum2 = 0;
// for(i = 1;i <=n; i+=2) //计算奇数部分的和
// {
// sum1 += i;
// }
// for(i = 2; i<=n;i+=2) //计算偶数部分
// {
// sum2 += i;
// }
// printf("%d",sum1-sum2);
//方法二 可以在优化成两个等差数列的和
int n = 0;
scanf("%d", &n);
if(n%2 ==0)
{
//有n/2个负,1-2 =-1 3-4 = -1
printf("%d",-n/2);
}
else
{ //1-2 =-1 3-4 =-1 5
printf("%d",-(n-1)/2 + n);
}
return 0;
}