题意为输入3000个以内的一组数,判断相邻两个的差值的绝对值是否满足1到n-1,并且都只出现一次,注意当只输入数字只有一个时也是jolly
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int n,i,j,a[3010],flag,cz[3010],temp; 6 while(scanf("%d",&n)!=EOF) 7 { 8 for(i=0;i<n;i++) 9 scanf("%d",&a[i]); 10 if(n==1) 11 { 12 printf("Jolly\n"); 13 continue; 14 } 15 for(i=0;i<=n;i++) 16 cz[i]=0; 17 flag=0; 18 for (i=0;i<n-1;i++) 19 { 20 temp=(int)fabs(a[i]-a[i+1]); 21 if(temp>0&&temp<n) 22 cz[temp]++; 23 else 24 { 25 flag = 1; 26 break; 27 } 28 } 29 30 if (flag) 31 printf("Not jolly\n"); 32 else 33 { 34 for (i=1;i<n;i++) 35 { 36 if(cz[i]!=1) 37 { 38 flag=1; 39 break; 40 } 41 } 42 43 if(flag) 44 printf("Not jolly\n"); 45 else 46 printf("Jolly\n"); 47 } 48 } 49 return 0; 50 }