題目連結: https://zerojudge.tw/ShowProblem?problemid=d097
# 解題思路
就開一個長度為 n 的陣列,記錄前後差的數值是否出現過
再從 1~n 之間,開始搜索哪一個未出現過,只要有找到就不是 Jolly Jumpers
# 程式碼
#include <iostream> | |
using namespace std; | |
int main() { | |
int n,x; | |
while(cin>>n){ | |
int num[n],d[n]={0}; | |
bool ans=true; | |
for(int i=0;i<n;i++) | |
cin>>num[i]; | |
for(int i =0;i<n-1;i++){ | |
x=num[i]-num[i+1]; | |
if(x<0) // 轉絕對值 (紀錄的都是正數) | |
d[-x]=1; | |
else | |
d[x]=1; | |
} | |
for(int i=1;i<n-1;i++){ | |
if(d[i]==0){ | |
ans=false; | |
break; | |
} | |
} | |
if(ans) | |
cout<<"Jolly"<<endl; | |
else | |
cout<<"Not jolly"<<endl; | |
} | |
} |