分析:满足题目条件的序列只有两种。第一种是从小到大排列的序列,如:1,2,3,4,5;还有一种满足条件的是:从中间某个地方断开,前面的数是递增序列,后面的数也是递增序列,且这个数组的第一个元素要比最后一个元素大,如:4,5,1,2,3。首先判断这个序列是不是一个从小到大递增的序列,如果是就不用进行接下来的判断,如果在中间某一点处发现这个数比后面的数大,那么进入后面数列的循环,看看后面的数是否满足递增,每满足一次递增条件,计数器count自加一次,除此之外,还要判断这个数组的最后一个元素是否比第一个元素小。
#include
using namespace std;
#define MAX 100000
int a[MAX];
int main(){
int n,i,j,count=0; //设置一个计数器
bool flag = 1; //设置一个判断标志
cin>>n;
for(i=0;i
>a[i];
for(i=0;i
a[i+1]){ //如果一个数比它后面的数大则进入第二次循环
for(j=i+1;j
a[j+1]){ //后面的数不满足递增
flag = 0;
break;
}
else
count++;
}
}
if(a[0]