有趣的跳跃,哪里错了大神看看
解决时间 2021-02-22 04:06
- 提问者网友:美人性情
- 2021-02-21 17:08
一个长度为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"。、
#include
#include
#include
int a[3010]={0},m[3010]={0};
int main(void)
{
int n,b=1;
scanf("%d",&n);
for(int i=0;i {
scanf("%d",&a[i]);
if(i==0)
continue;
else
m[i-1]=abs(a[i]-a[i-1]);
}
for(int i=0;i for(int j=0;j {
if(m[j+1] {
int temp;
temp=m[j];
m[j]=m[j+1];
m[j+1]=temp;
}
}
for(int k=n-1;k>0;k--)
{
if(m[k]-m[k-1]!=1)
b=0;
}
if(b==1)
printf("Jolly");
if(b==0)
printf("Not jolly");
return 0;
}
最佳答案
- 五星知识达人网友:平生事
- 2021-02-21 17:28
#include
#include
#include
int a[3010]={0},m[3010]={0};
int main(void)
{
int n,b=1;
scanf("%d",&n);
for(int i=0;i
{
scanf("%d",&a[i]);
if(i==0)
continue;
else
m[i-1]=abs(a[i]-a[i-1]);
}
for(int i=0;i
for(int j=0;j
{
if(m[j+1]
{
int temp;
temp=m[j];
m[j]=m[j+1];
m[j+1]=temp;
}
}
for(int k=n-1;k>0;k--)
{
if(m[k]-m[k-1]!=1)
b=0;
}
if(b==1)
printf("Jolly");
if(b==0)
printf("Not jolly");
return 0;
}
全部回答
- 1楼网友:十年萤火照君眠
- 2021-02-21 17:40
跳跳蹲跳,要在一秒以内。
我要举报
大家都在看
推荐资讯