要不看看我的抽象写法?
#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;
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int n = in.nextInt();
long sum = 0;
for(int i=1;i<=n;i++){
int temp = i%2==0?(-1)*i:i;
sum = sum+temp;
}
System.out.println(sum);
}
}