题目描述:一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的数列。在这个问题中a是一个非负的整数,b是正整数。 现给出三个整数,分别表示等差数列的第一项a、最后一项和公差b,求该数列的和。
输入描述:输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差.
输出描述:输出占一行,包含一个整数,为该等差数列的和。如果所给三个整数,不能构成等差数列,则返回-1。
#include <stdio.h>
int solution(int m, int n, int p){
int result;
int sum=0;
int a;
a=(n-m)%p;
if(a!=0){
result=-1;
}else{
while(m<=n){
sum=sum+m;
m=m+p;
result=sum;
}
}
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;
}