深夜,灯火辉煌的街头,空旷得可以来一场F1锦标赛。
“呜呜呜!”,一个发动机的轰鸣声从远处传来,打破了夜的宁静。
一个喝的醉醺醺的摩托车骑士正意气风发地开着他改装过的“老伙计”在街上狂飙。
几瓶二锅头下肚,跨上这神骑,风驰电掣的感觉真是难以形容!
十几秒钟后,摩托车骑士连人带车嵌进了一堵墙壁,落得个身死车毁的下场。
“这是本市这个月发生的第七起酒驾酿成的车祸”,电视银幕上一位播音员报道到。
“酒驾是全世界的重大问题之一,每年平均有3000人因酒驾伤残,致死,六分之一的道路事故因驾驶员酒精摄入超量导致,在此提醒观众朋友们,切勿。。。”
“唰!”,电视屏幕被关闭,一位警察目光炯炯,满含期待地看着杨成。
“您是业内的专家,警方希望您能帮我们建立一套信息学的醉驾分析系统,让人们能够安全驾驶”。
“这里是相关的资料,希望能派上用场”,警察递给杨成一份文件。
“1.成人体内平均每个小时可以分解掉一个单位的酒精”。
“2.酒精的单位数由酒精度数乘以酒类的体积来计算”。
“3.驾驶员饮酒时间和开车时间是已知的输入量”。
“4.如果饮酒时间点大于开车时间点,比如08:00饮酒,07:00开车,可以认定是第二天7点开的车”。
“5.时间都是字符串形式,24小时表示法”。
“6.如果开车的时间点,驾驶员体内酒精为0单位,则认定可以驾驶,否则就是醉驾”。
“比方说,某位驾驶员,在深夜11点,饮用了5.2度的啤酒1.704升,还喝了12度的啤酒0.525升,那么他第二天8点15分肯定是无法驾驶的。因为他的初始体内酒精是15.16个单元,至少需要15个小时才能驾驶”。
这个问题很简单,杨成看完资料,已是胸有成竹。
第一步,求出驾驶员饮完酒后的体内酒精单元数。
第二步,求出驾驶员饮酒时间点和开车时间点的时间差,用小时表示。
最后一步,因为正常人体内一个小时可以分解一个单位的酒精,所以只需要判断酒精单元数和时间差的大小,即可得出结论是否为酒驾。
等杨成把这些思路转化为代码,也不过一盏茶的时间。
警察竖起大拇指,然后好奇地问道:“您也喝酒吗?要不咋们去喝点什么?”
“不不”,杨成摆摆手,咧开嘴笑了。
“咋们程序员只爱喝咖啡”。
“叮!恭喜您完成了醉驾测试的相关任务!”
“当前积分71分,击败了全球30%的玩家,请您再接再厉!”