题目描述
输入长度为 n 的一个正整数序列,要求输出序列中最长连号的长度。
连号指在序列中,从小到大的连续自然数。
输入格式
第一行,一个整数 n。
第二行,n 个整数 ai,之间用空格隔开。
输出格式
一个数,最长连号的个数。
#include<stdio.h>
int main()
{
int n,i,j,max=0,count=0;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++) //进行几轮
{
j=i;
count=0; //每轮都要将count初始化
for(j;j<n-1;j++) //内部找连数
{
if(a[j]==(a[j+1]-1)) //最大为a[j+1] 所以j<n-1
count++;
else
break; //一定要记得加break,不然这个for就会一直运行
}
if(max<count)
max=count;
}
printf("%d\n",max+1); //因为两个数之间算1个,所以最后还要再加1
return 0; //例如:234 之间count应该为2,但长度为3
}