UVA 10038

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=24&problem=979&mosmsg=Submission+received+with+ID+11308688

题意为输入3000个以内的一组数,判断相邻两个的差值的绝对值是否满足1到n-1,并且都只出现一次,注意当只输入数字只有一个时也是jolly

View Code
 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 }

 

转载于:https://www.cnblogs.com/huzhenbo113/articles/2917288.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值