一、题目链接
http://noi.openjudge.cn/ch0105/24/
二、解题思路
⑴ 设定两个int变量ans、current,分别代表病人保持正常血压的最长时数、当前正常血压时数,初始时ans、
current均为0;
⑵ 从第1次测量开始,到第n次测量为止,通过循环,做如下操作:
① 输入当次测量的收缩压sp和舒张压dp;
② 如果当次测量的sp和dp均在正常范围内,则令当前正常血压时数current++;
◎ 如果此时病人保持正常血压的最长时数ans < current,则更新ans = current;
否则当次测量血压不正常,则令current = 0,也即当前正常血压时数清零;
⑶ 循环结束后,ans中存储了病人保持正常血压的最长时数。
三、程序代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int sp;
int dp;
int ans = 0;
int current = 0;
for (int i = 1; i <= n; i++) {
sp = input.nextInt();
dp = input.nextInt();
if (90 <= sp && sp <= 140 && 60 <= dp && dp <= 90) {
current++;
if (ans < current) {
ans = current;
}
}
else {
current = 0;
}
}
System.out.print(ans);
}
}