此人萌新 不知道哪里错了,求指出
#include<bits/stdc++.h> using namespace std; #define ll long long ll n;//项数 ll a,b;//第一项,第二项 ll ans=0;//等差数列和 /*等差数列求和公式: (首项+末项)*项数/2 项数=(首项+末项)/公差-1 n=kk/k-1; 一个小小的关键点:用求项数的公式来逆推求出(首项+末项) 思路:因为我们已知第一项和第二项 所以可以通过这两项来求出此等差数列的公差 而且我们知道此等差数列的项数 也就是说(项数+1)*公差=首项+末项 再通过(首项+末项)*项数/2来求和 */ /*因为数据范围都有<=10^6 所以直接都用long long类型定义a,b,n(第一项,第二项,项数)即可 但是因为项数可能很大(虽然项数n<=10^6)所以还是要用long long 类型定义kk((首项+末项)和),ans(等差数列和)和k(公差) */ int main(){ ios::sync_with_stdio(false);//项数 cin>>a>>b>>n; ll k=b-a;//公差 ll kk=(n+1)*k;//用求项数公式逆推求出(首项+末项)的和 ans=kk*n/2;//等差数列之和 cout<<ans; return 0; }