算法——翻转数列

1、题目

小Q定义了一种数列称为翻转数列:
给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4…, 每隔m个符号翻转一次, 最初符号为’-’;。
例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.
而n = 4, m = 1, 数列就是: -1, +2, -3, + 4.
小Q现在希望你能帮他算算前n项和为多少。

输入描述:
输入包括两个整数n和m(2 <= n <= 109, 1 <= m), 并且满足n能被2m整除。
输出描述:
输出一个整数, 表示前n项和。
示例1
输入
8 2
输出
8

2、题目分析

在这里插入图片描述

3、程序

#include<iostream>
using namespace std;
typedef long long LL;
int main(){
    LL n, m;
    cin>>n,m;
    cout<<m*n/2<<endl;
    return 0;
}

分析:
1、这里主要的就是内存溢出问题,需要将n,m命名为long long类型

猜你喜欢

转载自blog.csdn.net/weixin_39393712/article/details/94631897