题目描述
给定一个等差数列 ��ai 的首项,第二项,末项,求和。
输入
输入三个数,分别为等差数列的首项,第二项和末项。
输出
如果该等差数列只有三项,输出 �1+�2+�3=�a1+a2+a3=s。
超过三项只显示前两项和最后一项,中间用 ... 省略。
等号左侧的加数如果是负数要加()。
样例输入
样例1:
1 2 3
样例2:
-3 -2 0
样例输出
样例1:
1+2+3=6
样例2:
(-3)+(-2)+...+0=-6
代码
#include<bits/stdc++.h>
using namespace std;
void print(int x)
{
if(x<0)
cout<<"(";
cout<<x;
if(x<0)
cout<<")";
}
int main()
{
int a,b,c,cnt=0;
cin>>a>>b>>c;
long long sum=0;
if(a>b)
for(int i=a;i>=c;i-=(a-b))
{
sum+=i;
cnt++;
}
else
for(int i=a;i<=c;i+=(b-a))
{
sum+=i;
cnt++;
}
print(a);
cout<<"+";
print(b);
cout<<"+";
if(cnt>3)
cout<<"...+";
print(c);
cout<<"="<<sum<<endl;
return 0;
}