开心猫序列 C语言 函数

2023-07-28 19:35:24 浏览数 (1)

猫啊,活着最重要的就是开心啊!噗噗猫天天看着开心猫龇牙咧嘴得笑,决定给它构造一个开心序列,开心序列定义:序列a由n个正整数构成;

最开始序列的元素先是严格递增; 接着元素开始相同; 再接着元素开始严格递减。 注意第一部分和第三部分可以不存在。 举个例子,{1,2,3,3,2,1},{4,2},{3},{1,2}都是开心序列。 

输入 

第一行输入一个正整数n(1<=n<=100)为序列的个数; 第二行输入n个正整数a1, a2, …, an (1 ≤ ai ≤ 1 000),ai代表第i个元素的值。 输入结束标志为文件结束符(EOF)。 

输出 

如果输入序列是开心序列,那么输出“YES”,否则输出“NO”。

样例输入 

3 1 2 3 4 1 2 1 3

样例输出 

YES NO

碎碎念念

写三个函数,分别判断递增、不变和递减。

代码

代码语言:javascript复制
#include<stdio.h>
int a[100],n;
int descent(int m)
{
	int i;
	for(i=m;i<n-1;i  )
	{
		if(a[i]<a[i 1]||a[i]==a[i 1])
		return 0;
	}
	return 1;
}
int equal(int m)
{
	int i;
	for(i=m;i<n-1;i  )
	{
		if(a[i]<a[i 1])
		{
			return 0;
		}
		else if(a[i]>a[i 1])
		{
			return descent(i);
		}
	}
	return 1;
}
int plus()
{
	int i;
	for(i=0;i<n-1;i  )
	{
		if(a[i]==a[i 1])
		{
			return equal(i);
		}
		else if(a[i]>a[i 1])
		{
			return descent(i);
		}
	}
	return 1;
}
int main()
{
	int i;
	while(scanf("%d",&n)!=EOF)
	{
		for(i=0;i<n;i  )
		scanf("%d",&a[i]);
		if(plus()==1)
		printf("yesn");
		else
		printf("non");
	}
}

0 人点赞