有趣的跳跃

//题意:一个长度为n(n>0)的序列中存在“有趣的跳跃”当前仅当相邻元素的差的绝对值经过排序后正好是从1到(n-1)。
//例如,1 4 2 3存在“有趣的跳跃”,因为差的绝对值分别为3,2,1。当然,任何只包含单个元素的序列一定存在“有趣的跳跃”。
//我们需要写一个程序判定给定序列是否存在“有趣的跳跃”。
//题解:定义变量n,a[3030];输入n,然后循环,输入a[i];定义变量b[3030];(a[i]差的绝对值),
//再次循环,定义b[i]的大小,(b[i]既然是a[i]差的绝对值,那么b[i]就=a[i+1]-a[i])。
//判断b[i]是否<0,如果小于0,那么b[i]=b[i]*-1; 循环结束后定义变量c,(重头戏上场)
//(我们需要比大小来排序,因为题意中“个长度为n(n>0)的序列中存在
//“有趣的跳跃”当前仅当相邻元素的差的绝对值经过排序后正好是从1到(n-1)。”)所以 循环,
//(注意是循环套循环)判断b[i]是否<b[i+1],如果是,(排序开始):c=b[i+1],b[i+1]=b[i]
//,b[i]=c。接下来再次循环(说实话这题循环太多了),判断b[i]是否=n-i,
//如果不是,输出 "Not jolly",结束程序,随后在if后面输出 "Jolly"。
//结束所有程序。

//上代码!!!!!!!!!

include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[3030];//定义变量
cin>>n;
for(int i=1;i<=n;i++){//循环,输入a[i];定义变量b[3030];
cin>>a[i];
}
int b[3030];
for(int i=1;i<=n-1;i++){//循环,定义b[i]的大小,(b[i]既然是a[i]差的绝对值,那么b[i]就=a[i+1]-a[i])。
b[i]=a[i+1]-a[i];
if(b[i]<0){
b[i]=b[i]*-1;
}
}
int c;
for(int j=1;j<n-1;j++){//排序
for(int i=1;i<n-1;i++){
if(b[i]<b[i+1]){
c=b[i+1];
b[i+1]=b[i];
b[i]=c;//一定要变顺序!
}
}
}
for(int i=1;i<=n-1;i++){
if(b[i]!=n-i){//判断b[i]是否=n-i,如果不是,输出 "Not jolly",
cout<<"Not jolly";
return 0;
}
}
cout<<"Jolly";//反之,输出 "Jolly"
return 0;
}

posted @   Summerchen  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示