题目描述
等差数列是指从第二项起,每一项与它的前一项的差等于同一个常数的一种数列,这个常数叫做等差数列的公差,公差常用字母 d 表示。比如 7,10,13,16 就是一个公差为 3 的等差数列。
给定一个长度为 n,首项为 a0,公差为 d 的等差数列。
蒜头君请你帮忙求出这个等差数列的和值。
输入格式
输入第一行三个整数 n(1 ≤ n ≤ 105), a0(−105 ≤ a0 ≤ 105), d(−105 ≤ d ≤ 105),分别表示等差数列的项数,首项和公差。
输出格式
输出一行一个整数,表示等差数列所有项的和。
Sample Input
3 2 2
Sample Output
12
思路
等差数列求和公式:Sn = n * a1 + n(n - 1) d / 2
其中,a1是首项,d是公差,n是项数。
#include<stdio.h>
int main(void)
{
long long a1, d, ans, n;
scanf("%lld %lld %lld", &n, &a1, &d);
ans = n * a1 + d * n * (n - 1) / 2; //等差数列求和公式
printf("%lld\n", ans);
return 0;
}
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n, a1, d;
while(cin >> n >> a1 >> d)
cout << a1 * n + n * (n - 1) * d / 2 << endl;
return 0;
}