烽火通信C语言笔试题:牛市区间问题

本文介绍了一种计算股市中牛市区间的算法实现。通过输入连续n天的股市涨跌数据和一个阈值K,该算法能够找出所有使得区间内股票总涨幅不低于K的日期区间数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小明最近在研究股市,他拿了某只股票连续n天的股市变化数据,天数编号1到n,对于第i天,该股票的涨跌程度用一个整数啊【i】来表示。小明觉得对于某一段日期区间【li,ri】,如果这段区间内该股票总涨幅不小于K,那么这段区间就被认为是牛市区间。小明想知道这n天内,有多少个牛市区间?
输入:第一行一个整数n,k,1<=n<=5000,1=<k<=100000;
     第二行n个整数,第i个整数啊【i】表示第i天的涨跌程度,-2000<=a[i]<=2000;
输出:输出一个整数,表示一共有多少个牛市区间。
样例输入:
3   5
1   2    3
样例输出:
2
补充样例:
输入:
3    5
5    -1   5
输出:
3
#include<stdio.h>
#include<string.h>

int main()
{
    int a[1000],number=0,k,N,n;//N天数
    int b;
    while(1)
    {
    printf("输入知道天数:");
    scanf("%d",&N);
    printf("输入%d天的股市涨跌情况\n",N);
    for(int i=0;i<N;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("请输入K:");
    scanf("%d",&k);
    printf("%d天的股市涨跌情况:",N);
    for(int j=0;j<N;j++)
    {
        printf(" %d ",a[j]);
    }
    printf("\n");
    for(int m=0;m<N;m++)
    {
        b=0;
        for(n=m;n<N;n++)
        {
           b=b+a[n];
           if(b>=k)
            number++;
        }

    }
    printf("牛市天数:%d\n",number);
    }
    return 0;
}

执行程序结果:
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值