题目描述
一个等差数列是一个能表示成a, a+b, a+2b,…, a+nb (n=0,1,2,3,…)的数列。在这个问题中a是一个非负的整数,b是正整数。 现给出三个整数,分别表示等差数列的第一项a、最后一项和公差b,求该数列的和。
输入描述:
输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差.
输出描述:
输出占一行,包含一个整数,为该等差数列的和。如果所给三个整数,不能构成等差数列,则返回-1。
示例
输入
2 11 3
输出
26
代码
#include <stdio.h>
int solution(int m, int n, int p){
int result;
// TODO: 请在此编写代码
int count = (n-m)/p+1;
if(n == m+(count-1) * p)
result = count*(n+m)/2;
else
result = -1;
return result;
}
int main() {
int m;
int n;
int p;
scanf("%d", &m);
scanf("%d", &n);
scanf("%d", &p);
int result = solution(m, n, p);
printf("%d", result);
return 0;
}