题目分析:
该题是求给定输入数据中存在的相邻数对,并且要求数据个数为1到1000,并且每个数是不超过10000的非零整数,所以就可以设置一个长度为10000的数组,然后利用数组天然的位序优势来直接统计给定输入的数据在该数组中的出现情况。相似的算法思想还可以阅读我的另一篇博客:https://blog.csdn.net/AIMINdeCSDN/article/details/103346399
C语言源程序:
#include<stdio.h>
#include<string.h>
#define N 10000
int num[N+1];
int main()
{
int n,v,i;
int j=0;
//初始化数组值为0
memset(num,0,sizeof(num));
scanf("%d",&n);
//逐个读入数组
for(i=0;i<n;i++)
{
scanf("%d",&v);
num[v]++;
}
for(i=0;i<N;i++)
{
//判断为相邻数对的条件
if(num[i]==1 && num[i+1]==1)
{
j++;
}
}
printf("%d",j);
return 0;
}