一、题目链接
http://noi.openjudge.cn/ch0105/24/
二、解题思路
◎ 循环输入每次测量的收缩压和舒张压:
▲ 如果当次测量的血压正常:
→ 当前正常血压时数current加1;
→ 如果保持正常血压的最长时数ans小于当前正常血压时数current,将ans更新为current;
▲ 否则当次测量的血压不正常,将当前正常血压时数current清零;
◎ 循环结束后,即可求出保持正常血压的最长时数ans。
三、实施步骤
◎ 定义并输入int类型的整数n,代表测量次数;
◎ 定义四个int类型的整数sp、dp、ans=0、current=0,分别代表每次测量的收缩压、舒张压、保持正常血压的最长时数、当前正常血压时数;
◎ 通过标记i代表测量血压次数的编号,i从1开始,到n为止,递增步长为1,循环处理如下:
▲ 输入当次测量的收缩压sp和舒张压dp;
▲ if 90<=sp&&sp<=140&&60<=dp&&dp<=90:
→ 令current++;
→ if ans<current:令ans=current;
else:令current=0;
◎ 输出ans。
四、Java程序
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);
}
}