CCF计算机软件能力认证试题练习:202009-2 风险人群筛查

python实现代码

n, k, t, xl, yd, xr, yu = [int(i) for i in input("请输入n, k, t, xl, yd, xr, yu:").split()]
numpass = 0
numstay = 0

#检查坐标是否在高危地区
def InArea(x, y, xl , yd, xr, yu):
    return xl <= coordinate[0] <= xr and yd <= coordinate[1] <= yu

for i in range(n):
    passflag = False
    stayflag = False
    alist = input("请输入t个时刻坐标:").split()
    alist = [int(a) for a in alist]
    alist = [alist[i:i+2] for i in range(0, len(alist), 2)]
    times = 0 #记录第i个人最大连续经过高危地区的次数
    for coordinate in alist:
        if InArea(coordinate[0], coordinate[1], xl, yd, xr, yu):
            times += 1
            passflag = True
        else: #出现一点没在高危地区
            #print("当前连续停留次数:", times)
            if times >= k:
                stayflag = True
            times = 0   #体现了只有连续经过才行
    if times >= k:   #特殊情况:所有点都在高危地区
        stayflag = True
    if passflag:
        numpass += 1
        #print("numpass:", numpass)
    if stayflag:
        numstay += 1
        #print("numstay:", numstay)

print("经过高危区的人数:", numpass)
print("在高危区逗留的人数:", numstay)

题目原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值