栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

锯齿几何(C语言)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

锯齿几何(C语言)

锯齿是由严格的高低不同的刀片组成,而锯齿数组指的是数组中的相邻元素一高一低严格不同。一个元素和两个不同的元素是齿数较少的锯齿数组,因空集属于任何子集,我们规定,空数组也是锯齿数组。如{2,30,5,7}是锯齿数组,而{2,2,30,8,5,7}不是锯齿数组,但是却有长度为3的子锯齿数组{2,30,8}。编写程序,对输入的整数数组,计算其中包括的最长子锯齿数组的长度。

输入样例1:

第一行,数组长度N,第二行是空格分隔的N个整数。

9
18 45 30 50 10 17 8 25 19

输出样例1:

输出构成的最长的锯齿数组(本例中数据就是锯齿数组,故长度就是9)。

9

输入样例2:
13
18 19 20 45 30 50 10 17 10 9 8 25 19

输出样例2:

输出构成的最长的锯齿数组长度(本例中:20 45 30 50 10 17 10是锯齿数组,故长度是7)。

7

输入样例3:
4
19 19 9 9

输出样例3:

输出构成的最长的子锯齿数组长。

2

 #include
int max(int a,int b)
{
    if(a         return b;
    else 
        return a;
}
int main()
{
    int n,flag,up,dw;
    int a[1005];
    int ans=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)
    {
        if(a[i+1]         else if (a[i+1]>a[i]) {flag=1;dw=1;up=0;}
        else continue;
        for(int j=i+1;j<=n;j++)
        {
            if(a[j]             {
                up++;
                flag=1;
            }
            else if(a[j]>a[j-1]&&flag==1)
            {
                dw++;
                flag=0;
            }else
                break;
        }
        ans=max(ans,dw+up);
    }
    printf("%d",ans);
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号