第三十四章 醉驾测试

编程之战 程序小猿 528 字 2024-05-17

深夜,灯火辉煌的街头,空旷得可以来一场f1锦标赛。

“呜呜呜!”,一个发动机的轰鸣声从远处传来,打破了夜的宁静。

一个喝的醉醺醺的摩托车骑士正意气风发地开着他改装过的“老伙计”在街上狂飙。

几瓶二锅头下肚,跨上这神骑,风驰电掣的感觉真是难以形容!

十几秒钟后,摩托车骑士连人带车嵌进了一堵墙壁,落得个身死车毁的下场。

“这是本市这个月发生的第七起酒驾酿成的车祸”,电视银幕上一位播音员报道到。

“酒驾是全世界的重大问题之一,每年平均有3000人因酒驾伤残,致死,六分之一的道路事故因驾驶员酒精摄入超量导致,在此提醒观众朋友们,切勿。。。”

“唰!”,电视屏幕被关闭,一位警察目光炯炯,满含期待地看着杨成。

“您是业内的专家,警方希望您能帮我们建立一套信息学的醉驾分析系统,让人们能够安全驾驶”。

“这里是相关的资料,希望能派上用场”,警察递给杨成一份文件。

“1成人体内平均每个小时可以分解掉一个单位的酒精”。

“2酒精的单位数由酒精度数乘以酒类的体积来计算”。

“3驾驶员饮酒时间和开车时间是已知的输入量”。

“4如果饮酒时间点大于开车时间点,比如08:00饮酒,07:00开车,可以认定是第二天7点开的车”。

“5时间都是字符串形式,24小时表示法”。

“6如果开车的时间点,驾驶员体内酒精为0单位,则认定可以驾驶,否则就是醉驾”。

“比方说,某位驾驶员,在深夜11点,饮用了52度的啤酒1704升,还喝了12度的啤酒0525升,那么他第二天8点15分肯定是无法驾驶的。因为他的初始体内酒精是1516个单元,至少需要15个小时才能驾驶”。

这个问题很简单,杨成看完资料,已是胸有成竹。

第一步,求出驾驶员饮完酒后的体内酒精单元数。

第二步,求出驾驶员饮酒时间点和开车时间点的时间差,用小时表示。

最后一步,因为正常人体内一个小时可以分解一个单位的酒精,所以只需要判断酒精单元数和时间差的大小,即可得出结论是否为酒驾。

等杨成把这些思路转化为代码,也不过一盏茶的时间。

警察竖起大拇指,然后好奇地问道:“您也喝酒吗?要不咋们去喝点什么?”

“不不”,杨成摆摆手,咧开嘴笑了。

“咋们程序员只爱喝咖啡”。

“叮!恭喜您完成了醉驾测试的相关任务!”

“当前积分71分,击败了全球30的玩家,请您再接再厉!”