题解 UVa13244

题意翻译:给出\(n\),求数列\({1,3,5,...,n-2,n,n-2,n-4,...,3,1}\)的和

可以使用等差数列的通项公式,上面的数列的和等价于数列\(a_{n}=2n-1\)的前\((n+1)/2\)项和加前\((n+1)/2-1\)项和。等差数列求和公式:\(S_{n}=a_{1}n+n(n-1)d/2\)。套公式即可得出答案。

注意需要开 long long 。

代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        long long n;
        cin>>n;
        cout<<(n+1)*(n+1)/2-n<<endl;
    }
    
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/s-t-a-r-d-u-s-t/p/11436833.html