【华为OD统一考试B卷 | 100分】响应报文时间(C++ Java JavaScript Python)

本文介绍了华为OD在线OJ的一道题目,涉及计算主机在收到IGMP查询报文后如何根据最大响应时间字段选择随机时间响应,并提供了C++、Java、JavaScript和Python的解题思路及代码实现。
摘要由CSDN通过智能技术生成

华为OD在线OJ

已购买本专栏用户,请私信博主开通账号,在线刷题!!!

在线OJ:立即刷题

题库专栏:2023华为OD机试(A卷+B卷)(C++JavaJSPy)

题目描述

IGMP协议中,有一个字段称作最大响应时间(Max Response Time),HOST收到查询报文,解析出MaxResponseTime字段后,需要在(0~MaxResponseTime)s )时间内选取随机时间回应一个响应报文,如果再随机时间内收到一个新的查询报文,则会根据两者时间的大小,选取小的一方刷新回应时间。

最大响应时间有如下计算方式:
当MaxRespCode < 128 ,MaxRespTime = MaxRespCode
当MaxRespCode = 128 ,MaxRespTime = (mant | 0x10) << (exp + 3)
|0|123|4567|
|1|exp|mant|
注: exp 最大响应时间的 高5~7位;mant 为最大响应时间的 低4位

其中接收到的 MaxRespCode 最大值为255,以上出现所有字段均为无符号数。

现在我们认为 HOST 接收到查询报文时,选取的随机时间必定为最大值。现给出 HOST 收到查询报文个数 C,HOST收到报文的时间 T,以及查询报文的最大响应时间字段值M ,请计算出 HOST 发送响应报文的时间。

输入描述

第一行为查询报文个数 C,后续每行分别为HOST收到报文时间 T,以及最大响应字段 M,以空格分割。

输出描述

HOST发送响应报文的时间。

用例1

输入:

 3  
 0 20  
 1 10  
 8 20

输出:

 11

说明
收到3个报文
第0秒收到1个报文响应时间为20秒,则要到0

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YOLO大师

你的打赏,我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值