P8682 [蓝桥杯 2019 省 B] 等差数列--sort()

P8682 [蓝桥杯 2019 省 B] 等差数列

      • 题目
  • 解析
      • 代码

题目

P8682 [蓝桥杯 2019 省 B] 等差数列--sort()_第1张图片

解析

没什么做的,已知是乱序的等差数列,哪就先排序利用sort函数,再找出公差就行,然后用最后一项带公式求出N的值

介绍一下sort()函数(默认升序,左闭右开)【降序没必要记,反着遍历就行】
1)常用于vector数组中:sort(vec.begin(), vec.end());
2)在常规数组中:sort(a, a + n) 是什么意思?
第一个参数 a:
代表数组的起点位置(从第 1 个元素开始排序)。

第二个参数 a + n:
代表数组的终点位置(排序到第 n 个元素之前结束)。

代码

#include 
#include 
#include 
#include 
#include 
#include 

#include 
using namespace std;
int n;
int a[100010];
int main() {
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> a[i];
	sort(a, a + n);
	if (n <= 1) {
		cout << n;
		return 0;
	}
	int mi = a[1] - a[0];
	for (int i = 2; i < n; i++) {
		mi = min(mi, a[i] - a[i - 1]);
	}
	if (mi == 0)
		cout << n;
	else
		cout << (a[n - 1] - a[0]) / mi + 1;
	return 0;
}

你可能感兴趣的:(蓝桥杯,职场和发展)