# Jolly Jumpers 題目連結 [UVA 10038](https://onlinejudge.org/external/100/10038.pdf) ## 中文簡述 對於一個所有項目皆大於0的數列,如果兩兩的差介於1到n-1間,且沒有重複的話, 輸出 `Jolly` 否則輸出`Not jolly` ## [think] 1. 先輸入數字,並且判斷是否大於零,不是的話,`check=0` 2. 判斷相減的絕對值是否為0或是大於n,如果相減絕對值為0或大於n的話,`check=0`,否則用`num`陣列記錄相差數的紀錄。 3. 判斷`num`裡的數值是否都等於1,如果有一個不等於1,`check=0`,其他`check=1` 4. 如果`check=1`,輸出`jelly`,其他輸出`Not jelly` ## solution: ``` #include<bits/stdc++.h> using namespace std; int main() { int n; while(cin>>n) { int check=1,num[n]={0},arr[n],i; for(i=0;i<n;i++) { cin>>arr[i]; check=arr[i]==0?0:1; } for(i=0;i<n-1 and check;i++) { int res=abs(arr[i]-arr[i+1]); check=(res==0 or res>=n)?0:1; num[res]++; } for(i=1;i<n and check;i++) { check=num[i]==1?1:0; } if(check) { cout<<"Jolly."<<endl; } else { cout<<"Not jolly."<<endl; } } } ``` ###### tags: `UVA` 回目錄 [學習筆記](/gIBZqAbWTCis7uOPp149gA)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up