CCF考试练习——201509-1

来源:互联网 发布:合并多张表sql语句 编辑:程序博客网 时间:2024/05/22 02:12
  • 2017/9/5
    一到很简单的题目,但做的过程中因为思路没有理清,硬生生地复杂化了,想采用串的KMP方法来对段进行匹配,因为不熟练没有实现。最后采用一个遍历就实现了。看来CCF的第一个题目千万不能想多了。

题目:

试题编号:   201509-1试题名称:   数列分段时间限制:   1.0s内存限制:   256.0MB问题描述:   问题描述  给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?输入格式  输入的第一行包含一个整数n,表示数列中整数的个数。  第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。输出格式  输出一个整数,表示给定的数列有多个段。样例输入88 8 8 0 12 12 8 0样例输出5样例说明  8 8 8是第一段,0是第二段,12 12是第三段,倒数第二个整数8是第四段,最后一个0是第五段。评测用例规模与约定  1 ≤ n ≤ 10000 ≤ ai ≤ 1000

代码:

#include<stdio.h>int main(){    int n;    int a[1000] = {0};    int i = 0,j = 0;    int piece = 0;    scanf("%d",&n);    for(;i < n;i++){        scanf("%d",&a[i]);    }    a[n] = 1100;        //数组在最后的位置比较了一次    for(;j < n;++j){    //对数组元素进行两两比较 //      printf("a[%d] = %d\n",j,a[j]);//      printf("a[%d] = %d\n",j+1,a[j+1]);        if(a[j] != a[j+1]){            piece++;            }   //      printf("piece = %d\n",piece);    }       printf("%d",piece);    return 0;}
原创粉丝点击