牛客真题(2)-等差数列

判断一个给定的乱序数组是否是等差数列,如果是则输入“possible”,否则输出“impossible”。

分析:
首先数组是乱序的,需要对数组进行排序,然后通过等差数组的特性,比较相邻两个元素之间的差值是否相同,判断该数组是否是等差数列。排序可以通过调用STL库函数sort进行排序。

问题:
1、sort函数的使用;
2、可以使用容器存放输入数据,也可以使用数组。

附上C++代码:

#include
#include
using namespace std;

int main()
{
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i>a[i];
    if(n<=1)
    {
        cout<<"Possible"<

python实现:
问题:
1、输入的格式;
2、如果输入n小于3,会出现什么情况?
3、需要将数组的输入转换为列表格式。

附上python代码:

def equalDiff(A):
    A.sort()
    d=A[1]-A[0]
    for i in range(len(A)-1):
        if A[i]!=A[i+1]-d:
            return 'Impossible'
    return 'Possible'

n=int(input())
A=list(map(int,input().split(' ')))
print(equalDiff(A))

你可能感兴趣的:(代码训练)