題目:給出一個不排序的等差數據,且等差數據只是完整等差數據的一部分
輸入格式:
第一行 輸入數字N
第二行 輸入N個數字
輸出 :
最短等差數列的個數
樣例輸入:
5
2 6 4 10 20
樣例輸出:
10
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int m;
cin>>m;
int f[m];
for (int i = 0; i < m; ++i) {
cin>>f[i];
}
sort(f,f+m);
int min=f[1]-f[0],min1,count1;
for (int j = 1; j < m; ++j) {
min1=f[j]-f[j-1];
if(min1<min)
min=min1;
}
//cout<<f[m-1]-f[0]<<endl;
// cout<<min<<endl;
if((f[m-1]-f[0])%min==0){
count1=(f[m-1]-f[0])/min+1;
}
else{
count1=f[m-1]-f[0]+1;
}
cout<<count1;
return 0;
}
博主只憑自己的理解寫的,若錯勿噴。謝謝。