您的位置:首页 > 其它

CCF——数列分段

2017-09-09 15:20 211 查看

问题描述

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


输入格式

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


输出格式

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


样例输入

8
8 8 8 0 12 12 8 0


样例输出

5


解题思路

可以先将数存放在数组中,再一次遍历,两两进行比较,如果不同那么就是一段,所以代码很快就可以写出了。


Code

#include <iostream>
using namespace std;
#define MAXSIZE 1005int a[MAXSIZE];
int main()
{
int n;
while (cin >> n)
{
int count = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
for (int j = 0; j < n - 1; j++)
{
if (a[j] != a[j + 1])
{
count++;
}
}
count++;
cout << count << endl;
}
return 0;
}


或者采用边输入边检测的方法进行判断。

Code

#include<iostream>
using namespace std;
int main()
{
int n, temp, pre, count = 1;
while (cin >> n)
{
cin >> temp;
pre = temp;
for (int i = 1; i < n; i++)
{
cin >> temp;
if (temp != pre)
{
count++;
}
pre = temp;
}
cout << count << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: