openjudge 1.5.24 正常血压

OpenJudge - 24:正常血压


解题思路:

1.由题可知,一共有n行,每行包含两个整数,分别对应着收缩压和舒张压,并且直到收缩压在90-140之间是正常的,舒张压在60-90之间是正常的

2.再看题目,要求的并不是正常的累计数,而是保持正常的最长时间数,什么意思呢?比如第一个小时正常,第二个小时不正常,第三第四个小时正常,那么输出的应该是2即第三第四个小时的连续正常的时间,那么我们不能用常规的累加器来求和了

3.应该是sum累加依次就要去和最大值max比较,因为sum可能会因为中间的依次不正常而归0,所以我们设max初始化为0后,如果血压都正常,sum++,紧接着对sum进行判断,if(sum>max),max=sum;否则,血压不正常的话sum要归0,继续判断

4.最后输出max的值即可


#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,sum=0,max=0;//sum为累加正常血压时长,max存储最大值 
	cin>>n;
	int x,y;//分别表示收缩压和舒张压 

	for(int i=1;i<=n;i++)
	{
		cin>>x>>y;
		if(x>=90&&x<=140&&y>=60&&y<=90)//如果血压正常 
		{
			sum++;//累加器累加 
			if(sum>max)//如果正常时长大于max 
			max=sum;//max更新 
		}
		else//如果血压不正常 
		sum=0;//累加器开始从0累加 
	}

	cout<<max;//输出最大值 
	return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该问题需要根据给出的引用内容进行回答。监护室每小时测量一次病人的血压,若收缩压在90 - 140之间并且舒张压在60 - 90之间(包含端点值)则称之为正常。现给出某病人若干次测量的血压值,需要计算病人保持正常血压的最长小时数。 可以通过以下步骤来计算病人保持正常血压的最长小时数: 1. 定义两个变量,一个用于记录当前连续正常血压的小时数,另一个用于记录最长连续正常血压的小时数,初始值都为0。 2. 遍历给出的血压值列表,对于每个血压值,判断是否在正常范围内。 3. 如果在正常范围内,则将当前连续正常血压的小时数加1,如果大于最长连续正常血压的小时数,则更新最长连续正常血压的小时数。 4. 如果不在正常范围内,则将当前连续正常血压的小时数重置为0。 5. 遍历完所有血压值后,最长连续正常血压的小时数即为所求。 代码如下(Python): ```python # 输入血压值列表 blood_pressure = [130, 80, 140, 95, 120, 70, 130, 90, 100, 85] # 定义变量 current_hours = 0 # 当前连续正常血压的小时数 max_hours = 0 # 最长连续正常血压的小时数 # 遍历血压值列表 for bp in blood_pressure: if 90 <= bp <= 140 and 60 <= bp <= 90: # 在正常范围内,当前连续正常血压的小时数加1 current_hours += 1 # 如果大于最长连续正常血压的小时数,则更新最长连续正常血压的小时数 if current_hours > max_hours: max_hours = current_hours else: # 不在正常范围内,当前连续正常血压的小时数重置为0 current_hours = 0 # 输出结果 print("病人保持正常血压的最长小时数为:", max_hours) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值