要不看看我的抽象写法?
#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;
} int main() {
int n = 0;
scanf("%d",&n);
int i = 0;
int sum = 0;
int j = 1;
for(i=1;i<=n;i++)
{
sum += i*j;
j=-j;
}
printf("%d",sum);
return 0;
} #include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n;
int i,j;//i代表奇数,j代表偶数
int jh=0,oh=0;//jh奇数和,oh负的偶数和
scanf("%d",&n);
if(n%2==0)//n是偶数的情况
{
for(i=1;i<n;i=i+2)
jh=jh+i;
for(j=2;j<=n;j=j+2)
oh=oh-j;
printf("%d",jh+oh);
}
else if(n%2!=0)//n是奇数的情况
{
if(n==1)//n是1就直接输出1
{
printf("1");
}
else if(n!=1)//n不是1和偶数一样的情况
{
for(i=1;i<=n;i=i+2)
jh=jh+i;
for(j=2;j<n;j=j+2)
oh=oh-j;
printf("%d",jh+oh);
}
}
return 0;
}