考題日期:2017/03/28
題號:10038
星等:1
語言:C++
題目:
題意:
有n個整數的序列我們稱為jolly jumper,如果相鄰的2個數其差的絕對值恰好為1到n-1。
有一個 n 個整數的序列且相鄰兩個數的差值的絕對值恰好為 1 到 n-1 ,此序列我們稱為Jolly,判斷輸入之數字是否為Jolly。
程式:
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
bool key =true;
int num[n],d[n-1];
for(int i = 0 ; i < n ; i++)
{
cin>>num[i];
}
for(int i = 0 ; i < n - 1 ; i++)
{
d[i] = abs(num[i+1] - num[i]);
}
sort(d,d+n-1);
for(int i = 0 ; i < n - 1 ; i++)
{
if(d[i] != i + 1)
{
key = false;
break;
}
}
if(key)
cout<<"Jolly"<<endl;
else
cout<<"Not jolly"<<endl;
}
return 0;
}
測資: