一:问题
1.问题描述
给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?
2.输入格式
输入的第一行包含一个整数n,表示数列中整数的个数。
第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。
3.输出格式
输出一个整数,表示给定的数列有多个段。
4.样例输入
8
8 8 8 0 12 12 8 0
5.样例输出
5
6.样例说明
8 8 8是第一段,0是第二段,12 12是第三段,倒数第二个整数8是第四段,最后一个0是第五段。
7.评测用例规模与约定
1 ≤ n ≤ 1000,0 ≤ ai ≤ 1000。
二:理解
根据题目解释的就可以了
三:代码
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int num[1005];
int main()
{
int n,count = 1;
cin >> n;
for(int i=0; i<n; i++)
cin >> num[i];
for(int i=1; i<n; i++)
if(num[i-1]!=num[i])
count++;
cout << count << endl;
return 0;
}
第二次代码:
就是看着连着相同的数一共有几堆。
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int main()
{
int temp, a;
int n;
cin >> n;
n -= 1;
int counts = 1;
cin >> temp;
while(n--)
{
cin >> a;
if(temp != a)
counts++;
temp = a;
}
cout << counts << endl;
}