CCF 数列分段 C语言 201509-1

问题描述


给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?

输入格式


输入的第一行包含一个整数n,表示数列中整数的个数。
第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。

输出格式


输出一个整数,表示给定的数列有多个段。

样例输入


8
8 8 8 0 12 12 8 0

样例输出


5

样例说明


8 8 8是第一段,0是第二段,12 12是第三段,倒数第二个整数8是第四段,最后一个0是第五段。

评测用例规模与约定


1 ≤ n ≤ 1000,0 ≤ ai ≤ 1000。

源代码


#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int i,j,count=1,x=0;
    int a[1010];
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(a[i]==a[j])
            {
                count=count+0;
                x=0;
            }

            else
            {
                x=j-i-1;//直到遇见不同得数,段数+1
                count++;
                break;
            }
        }
        i=i+x;//跳到下一段上
    }
    printf("%d\n",count);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/piapiapia2333/article/details/82555929