07:有趣的跳躍總時間限制: 1000ms 內存限制: 65536kB
描述一個長度為n(n>0)的序列中存在“有趣的跳躍”當前僅當相鄰元素的差的絕對值經過排序后正好是從1到(n-1) 。例如,1 4 2 3存在“有趣的跳躍”,因為差的絕對值分別為3,2,1 。當然,任何只包含單個元素的序列一定存在“有趣的跳躍” 。你需要寫一個程序判定給定序列是否存在“有趣的跳躍” 。
輸入一行,第一個數是n(0 < n < 3000),為序列長度,接下來有n個整數,依次為序列中各元素,各元素的絕對值均不超過1,000,000,000 。
輸出一行,若該序列存在“有趣的跳躍”,輸出"Jolly",否則輸出"Not jolly" 。
樣例輸入4 1 4 2 3
樣例輸出Jolly
題意如果一個序列前僅當相鄰元素的差的絕對值經過排序后正好是從1到(n-1)就有"有趣的跳躍"并且任何只包含單個元素的序列一定存在“有趣的跳躍”.要求你寫一個程序判定給定序列是否存在“有趣的跳躍” 。
思路用兩個單獨的for循環,和兩個嵌套for循環完成.用來[輸入][排序][輸出Jolly或Not jolly]
代碼實現#include<bits/stdc++.h>using namespace std;int n,a[31000],b[31000],c,d;//聲明變量和列表int main(){ cin>>n;//輸入變量n for(int i=1;i<=n;i++){cin>>a[i];//使用for循環輸入列表a } for(int i=1;i<=n-1;i++){b[i]=abs(a[i]-a[i+1]);//使用for循環把列表a變成絕對值存入列表b }//冒泡排序 for(int x=1;x<=n-1;x++){for(int i=1;i<=n-x-1;i++){if(b[i+1]<b[i]){swap(b[i],b[i+1]);//交換兩個數的位置}} }//判斷是否具有"有趣的跳躍" for(int i=1;i<=n-1;i++){if(b[i]!=i){cout<<"Not jolly";return 0;} } cout<<"Jolly"; return 0;//結束程序}
經驗總結擴展閱讀
- 有趣的靈魂和好看的皮囊這些星座情侶都有
- 忘掉不開心的有趣簽名 新穎俏皮的歡樂簽名
- 漢字來歷小故事 有趣漢字小故事20字
- 有趣實驗 .NET下數據庫的負載均衡(續)
- 有趣的動物睡覺姿勢
- 有趣實驗 .NET下數據庫的負載均衡
- 有趣的女人是什么意思?
- 簡單有趣的倒置拍攝教程 手機拍照上下顛倒怎么設置
- 金魚有哪些有趣的特點
- 有趣的展示!PPT如何讓文字一個一個顯示出來?
