当前位置:首页 > 编程笔记 > 正文
已解决

蓝桥杯每日一题2023.10.20

来自网友在路上 172872提问 提问时间:2023-10-22 09:23:44阅读次数: 72

最佳答案 问答题库728位专家为你答疑解惑

题目描述

等差数列 - 蓝桥云课 (lanqiao.cn)

知识点:

排序找出最大公约数则为公差

项数: n = (第n项值-首项) / 公差 +1。 n = (an-a1) / d+1
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5 + 10;
int a[N], n;
int gcd(int a, int b)
{return a ? gcd(b % a, a) : b;
}
int main()
{cin >> n;for(int i = 1; i <= n; i ++){cin >> a[i];}sort(a + 1, a + 1 + n);int d = 0;for(int i = 2; i <= n; i ++){d = gcd(d, a[i] - a[i - 1]);	}	if(d == 0)cout << n;else cout << (a[n] - a[1]) / d + 1;return 0;
}
查看全文

99%的人还看了

相似问题

猜你感兴趣

版权申明

本文"蓝桥杯每日一题2023.10.20":http://eshow365.cn/6-21490-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!