第六章27

【题目描述】

小明5岁了。他从一堆数字卡片中选出了4张卡片:5、7、6、8。他摆布了一阵这些卡片后,发现它们可以排成比较顺的序列:5、6、7、8。他同样拿了另4张卡片:5、7、1、2,可是怎么也排不成“顺”的序列。原来,小明的所谓“顺”序列是我们所知道的步长为1的等差数列!小明一边拿起一堆数字卡片,一边就在摆布它们,尝试着让它们“顺”起来,可总是有些“顺”,有些不“顺”。请你帮助小明来判断对于给定的一堆数字,能“顺”还是不能“顺”。

【输入】

有两行。第1行是一个整数n,表示卡片数量(1≤ n≤1000)。第2行有n张卡片数字(不超过1000的正整数)。

【输出】

 仅一行。给定的卡片数字能顺,就输出“Yes”,否则就输出“No”。

【样例输入】

5↙

8 4 7 6 5↙

【样例输出】

Yes

#include<stdio.h>
int main()
{
    int n,i,j,t;
    scanf("%d",&n);
    int m[n];
    for(i=0;i<n;i++)
    scanf("%d",&m[i]);
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if(m[i]>m[j])
    {
        t=m[i];
        m[i]=m[j];
        m[j]=t;
    }
    t=0;
    for(i=1;i<n;i++)
    if((m[i]-m[i-1])!=1)
    t++;
    if(t!=0)
    printf("No");
    else
    printf("Yes");
    return 0;
}

 

posted @ 2022-11-11 22:34  aquAAA  阅读(201)  评论(0编辑  收藏  举报