30pts大佬求助
查看原帖
30pts大佬求助
1246661
feng_chenShy楼主2025/2/5 16:14
#include <bits/stdc++.h>
using namespace std;
long n,a[100005];
long maxn=LONG_MIN,minn=LONG_MAX,cnt,ans;
//maxn,minn求最大最小值
//cnt是等差数列中每两个数的差
//ans是等差数列中数的个数
int main (){
	cin>>n;
	for(register int i=1;i<=n;i++){
		scanf("%ld",&a[i]);
		maxn=max(a[i],maxn);
		minn=min(a[i],minn);
		if(i==2)
			cnt=__gcd(a[i],a[i-1]);
		else{
			if(i>2){
				cnt=__gcd(cnt,a[i]);
			}
		}
	}
	ans=(maxn-minn)/cnt+1;
	cout<<ans<<endl;
	return 0;
}
2025/2/5 16:14
加载中...