求助大佬!!!!!!!!!!!
查看原帖
求助大佬!!!!!!!!!!!
920270
Wei_scky楼主2023/8/21 08:56

此人萌新 不知道哪里错了,求指出

#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;
}
2023/8/21 08:56
加载中...