首页 > 试题广场 >

牛牛学数列

[编程题]牛牛学数列
  • 热度指数:34402 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}牛牛开始学习数列啦。现在他想计算以下数列前 n 项的和:

\displaystyle S(n) = \sum_{i=1}^{n}(-1)^{\,i-1}\times i = 1 - 2 + 3 - 4 + \cdots + (-1)^{\,n-1}n

\hspace{15pt}请你计算并输出 S(n) 的值。

输入描述:
\hspace{15pt}在一行中输入一个正整数 n,满足 1 \leqq n \leqq 100


输出描述:
\hspace{15pt}输出一个整数,表示 S(n) 的值。
示例1

输入

4

输出

-2

说明

S(4) = 1 - 2 + 3 - 4 = -2
#include <iostream>
using namespace std;

int main()
{
    int sum = 0, n;
    cin >> n;
    int flag = 1;
    for ( int i = 1; i <= n; i ++ )
    {
        sum += i * flag;
        flag *= -1;
    }
    cout << sum << endl;
}

发表于 2022-02-26 14:17:18 回复(0)
#include <stdio.h>
int main()
{
    int n, s = 0;
    scanf("%d", &n);
    while(n)
    {
        s = s+((n%2) ? n : -n);
        n--;
    }
    printf("%d", s);
    return 0;
}


发表于 2022-06-28 14:51:46 回复(1)
#include<stdio.h>
#include<math.h>    //int abs(int x) 返回x的绝对值
int main(){
    int n,sum=0,var,i;
    scanf("%d",&n);
    for(i=1,var=1;i<=n;i++){
        sum = sum +var;
        var = (i+1)*(-var/abs(var));
    }
    printf("%d",sum);
    return 0;
}

发表于 2022-06-14 18:07:14 回复(0)
#include <stdio.h>

int main() {
    int a;
    scanf("%d",&a);
    if(a%2==0)
    printf("%d",-1*a/2);
    else
     printf("%d",-1*a/2+a);
}
发表于 2025-12-02 22:50:55 回复(0)
n=int(input())
p=1<=n<=100
if p:print(sum(i if i%2!=0 else -i for i in range(1,n+1)))
else:print('请满足1≦n≦100的正整数')

发表于 2025-10-29 15:38:05 回复(0)
#include <stdio.h>
int main(){
    int n, k = 1,s = 0;
    scanf("%d\n",&n);
    for (int i = 1; i <= n; i++ ){
        s += i * k;
        k = -k;
    }
    printf("%d\n",s);
    return 0;
}
发表于 2025-09-27 20:32:23 回复(0)
#include <iostream>
using namespace std;

int main(){
    int n;
    cin>>n;
    if(n%2==0){
        cout<<-(n/2);
    }else cout<<-((n-1)/2)+n;
}
// 64 位输出请用 printf("%lld")
发表于 2025-09-18 21:15:08 回复(1)

要不看看我的抽象写法?

#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;
}
发表于 2025-08-07 09:51:10 回复(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;
}

发表于 2024-12-11 16:29:06 回复(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;
}

发表于 2024-08-13 08:20:52 回复(0)
#include <stdio.h>

int main() {
    int n,sum=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        if(i%2==0)
        {
            sum-=i;
        }
        if(i%2!=0)
        {
            sum+=i;
        }
    }
    printf("%d",sum);
    return 0;
}

发表于 2024-01-14 22:32:53 回复(0)
#include <stdio.h>
int main()
{
    int n = 0;
    int sum = 0;
    int flag = 1;
    scanf("%d",&n);
    for(int i = 1; i <= n; i++)
    {
      sum+=i * flag;
      flag = -flag;
    }
    printf("%d",sum);
    return 0;
}

编辑于 2023-12-25 20:25:12 回复(0)
#include <stdio.h>
int main() {
    int a = 0;
    scanf("%d",&a);
    int b = 1;
    int k = 0;
    int c = 1;
    for(b = 1;b<=a;b++)
    {
        k = k+b*c;
        c =-c;
    }
    printf("%d",k);
    return 0;
}
发表于 2023-05-27 16:34:36 回复(1)
n=int(input())
sum=0
for i in range(1,n+1):
    if i%2==0:
        sum-=i
    else:
        sum+=i
print(sum)       

发表于 2023-01-19 11:04:46 回复(0)
#include <stdio.h>

int main() {
    int a, b = 0, i;
    scanf("%d", &a);
    for (i = 1; i <= a; i++) {
        if (i % 2 == 0) {
            b = b - i;
        } else {
            b = b + i;
        }
    }
    printf("%d\n", b);
    return 0;
}
发表于 2022-09-25 16:55:44 回复(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;
}

发表于 2022-08-18 19:44:15 回复(0)
n=int(input())
sum=0
for i in range(1,n+1):
    sum=sum+i*((-1)**(i+1))
print(sum)

发表于 2022-02-23 22:10:06 回复(0)
def S(n):
    if 1<=n<=100:
        s=0
        for i in range(0,n+1):
            s += i*((-1)**(i-1))
        return int(s)

n = int(input())
print(S(n))
发表于 2025-12-17 22:58:59 回复(0)
#include <stdio.h>

int main()
{
int n,sum;
scanf("%d",&n);
int i=1;
int sign=1;
for(i=1;i<=n;i++)
{
sum += sign * i;
sign = -sign;
}
printf("%d",sum);
return 0;
}
发表于 2025-12-15 10:55:28 回复(0)
#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;
    if (n % 2 == 0) {
        n /= (-2);
    } else {
        n = (n + 1) / 2;
    }
    cout << n << endl;
}
发表于 2025-12-11 00:07:36 回复(0)