题目
分析
用数组a[ ] 存储序列。
这里要求出序列中的段数,需要扫描整个序列。用 l 表示正在扫描的段的开头,r表示正在扫描的那个数字。不断的r++(向后扫描),直到遇到a[r]!=a[l]的情况,表示到下一段了,令l指向r所指向的数字。
因为这里是遇到了不同的才会con++;显然最后一段没有加入进去,所以直接初始化cnt=1即可。
代码
#include<stdio.h>
using namespace std;
int n,a[2000];
int main()
{
scanf("%d",&n);//个数
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
int l=0,r=0,count=1;
while(r<n-1){
r++;
if(a[r]!=a[l]){//下一个段
l=r;
count++;
}
}
printf("%d\n",count);
return 0;
}