信息学奥赛一本通 1076:正常血压 | OpenJudge NOI 1.5 24:正常血压

【题目链接】

ybt 1076:正常血压
OpenJudge NOI 1.5 24:正常血压

【题目考点】

1. 循环统计连续处于某种状态的次数

例:

  • 输入一个由英文数字组成的字符串,求其中最多连续出现几个数字。
  • 输入一个二进制数,求其中最多连续出现几个1。
  • ybt 1116:最长平台 | OpenJudge NOI 1.9 12:最长平台

这类问题一般做法:

  • 设置统计变量c,初值为0(根据具体情况,也许需要初值为1),设置cMx表示统计变量c可能达到的最大值
  • 循环遍历各个状态
    • 如果遇到目标状态,统计变量c增加1。判断c是否比cMx大,如果是,把c赋值给cMx。
    • 如果遇到非目标状态,统计变量c还原为0。

【解题思路】

  • 设置变量c表示血压连续正常的次数,设cm表示血压连续正常的最大次数
  • 循环输入高压低压,判断这一组高压低压是否正常,如果是,c增加1,判断c是否比cm大,如果是,把c赋值给cm。否则,c还原为0。
  • 最后输出cm的值

【题解代码】

解法1:
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n, h, l, c = 0, cm = 0;//h:收缩压,l:舒张压 c:血压连续正常的次数  cm:血压连续正常的最大次数
	cin >> n;
	for(int i = 0; i < n; ++i)
	{
		cin >> h >> l;
		if(h >= 90 && h <= 140 && l >= 60 && l <= 90)//判断这一组高低压是否正常
		{
			c++;//如果满足条件,则正常血压次数计数
			if(c > cm)
				cm = c;
		}
		else//如果不满足条件,则正常血压次数置为0
			c = 0;
	}
	cout << cm;
	return 0;
}
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值