牛客题解 | 等差数列_1

题目

题目链接

题解

难度:简单

知识点:排序 数学逻辑

思路:

1.首先将n个元素存放在动态数组x中,对其进行从小到大排序。

2.通过x[1]-x[0]计算出d,采用for循环判断动态数组中两个相邻的数的差x[i]-x[i-1]与d是否相同:若不相等即不能构成等差数列,无需对之后的数进行判断,提前退出循环。

3.怎么判断是否提前退出循环?
定义flat变量,在进入循环之前赋值为1,在循环过程中,若出现x[i]-x[i-1]与d不相等,将flat赋值为0,然后通过break退出循环。

4.在循环之后,判断flat值,若为1输出:Possible,若为0输出:Impossible。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
  vector<int> x;
  int n,a;
  cin&gt;&gt;n;
  for(int i=0;i<n;i++){ cin>&gt;a;
    x.push_back(a);
  }
  sort(x.begin(),x.end());
  int d=x[1]-x[0];
  int flat=1;
  for(int i=2;i</n;i++){></int></algorithm></vector></iostream>
posted @ 2025-03-10 11:03  wangxiaoxiao  阅读(9)  评论(0)    收藏  举报