牛客真題(2) 等差數列

2021-09-12 23:37:24 字數 777 閱讀 3043

判斷乙個給定的亂序陣列是否是等差數列,如果是則輸入「possible」,否則輸出「impossible」。

分析:首先陣列是亂序的,需要對陣列進行排序,然後通過等差陣列的特性,比較相鄰兩個元素之間的差值是否相同,判斷該陣列是否是等差數列。排序可以通過呼叫stl庫函式sort進行排序。

問題:1、sort函式的使用;

2、可以使用容器存放輸入資料,也可以使用陣列。

附上c++**:

#include#includeusing namespace std;

int main()

{ int n;

cin>>n;

int a[n];

for(int i=0;i>a[i];

if(n<=1)

{cout<<"possible"問題: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))

45 等差數列

45 等差數列 問題描述 乙個等差數列是乙個能表示成a,a b,a 2b,a nb n 0,1,2,3,在這個問題中a是乙個非負的整數,b是正整數。寫乙個程式來找出在雙平方數集合s中長度為n的等差數列。雙平方數集合是所有能表示成p2 q2的數的集合。輸入說明 第一行 n 3 n 25 要找的等差數列...

45 等差數列

乙個等差數列是乙個能表示成a,a b,a 2b,a nb n 0,1,2,3,在這個問題中a是乙個非負的整數,b是正整數。寫乙個程式來找出在雙平方數集合s中長度為n的等差數列。雙平方數集合是所有能表示成p2 q2的數的集合。第一行 n 3 n 25 要找的等差數列的長度。第二行 m 1 m 250 ...

45 等差數列

45 等差數列 問題描述 乙個等差數列是乙個能表示成a,a b,a 2b,a nb n 0,1,2,3,在這個問題中a是乙個非負的整數,b是正整數。寫乙個程式來找出在雙平方數集合s中長度為n的等差數列。雙平方數集合是所有能表示成p2 q2的數的集合。輸入說明 第一行 n 3 n 25 要找的等差數列...