龟兔赛跑预测-进阶题6
龟兔赛跑预测题目问题描述话说这个世界上有各种各样的兔子和乌龟但是研究发现所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛小华对此很感兴趣于是决定研究不同兔子和乌龟的赛跑。他发现兔子虽然跑比乌龟快但它们有众所周知的毛病——骄傲且懒惰于是在与乌龟的比赛中一旦任一秒结束后兔子发现自己领先t米或以上它们就会停下来休息s秒。对于不同的兔子ts的数值是不同的但是所有的乌龟却是一致——它们不到终点决不停止。然而有些比赛相当漫长全程观看会耗费大量时间而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1表示每秒兔子能跑v1米乌龟的速度v2以及兔子对应的ts值以及赛道的长度l——就能预测出比赛的结果。但是小华很懒不想通过手工计算推测出比赛的结果于是他找到了你请求帮助请你写一个程序对于输入的一场比赛的数据v1v2tsl预测该场比赛的结果。输入说明输入只有一行包含用空格隔开的五个正整数v1v2tsl其中(v1,v2100;t300;s10;l10000且为v1,v2的公倍数)输出说明输出包含两行第一行输出比赛结果——一个大写字母“T”或“R”或“D”分别表示乌龟获胜兔子获胜或者两者同时到达终点。第二行输出一个正整数表示获胜者或者双方同时到达终点所耗费的时间秒数。比如输入10 5 5 2 20输出D4输入10 5 5 1 20输出R3输入范例10 5 5 3 20输出范例T 4解题思路本题思路是通过 逐秒模拟比赛过程模拟算法 来判断兔子和乌龟的比赛结果。设兔子的速度为 v1乌龟的速度为 v2赛道长度为 l。从第 1 秒开始每一秒都更新两者的行进距离乌龟每秒都会前进 v2米而兔子通常每秒前进 v1米。但在每一秒结束后如果兔子发现自己 领先乌龟达到或超过 t 米则兔子会 停止跑步休息 s 秒在休息期间兔子不移动但乌龟仍然继续前进。可以用一个变量记录兔子剩余休息时间当休息时间大于0时兔子不移动并减少休息计数。每秒更新两者位置后判断是否到达或超过终点 l一旦有人到达终点就结束模拟根据两者到达终点的情况判断是 兔子胜R、乌龟胜T 还是 同时到达D并输出对应耗费的时间。整体代码#includeiostreamusingnamespacestd;intmain(){intv1,v2,t,s,l;cinv1v2tsl;intrabbit0,turtle0;inttime0;intrest0;// 兔子剩余休息时间while(rabbitlturtlel){time;// 兔子移动或休息if(rest0){rest--;}else{rabbitv1;}// 乌龟移动turtlev2;// 每秒结束判断是否需要休息if(rest0rabbit-turtlet){rests;}}if(rabbitlturtlel)coutDendl;elseif(rabbitl)coutRendl;elsecoutTendl;couttimeendl;return0;}注意事项注意休息判断发生在“秒结束”。英文段落翻译自己翻译ROM只读存储器包含了一个小的指令和叫做引导装入程序的数据集合。引导装入程序指令告诉一个数字设备怎样启动通常引导装入程序运行自我测试来查明硬件是否运行正确并且可能也证实基础程序没有被损坏他随后装载操作系统进入RAM。然而是暂时的和易失性的ROM是更加持久的和不易失的。ROM的目录甚至在设备已经关闭的时候都可以保留。大部分计算机有着另外的存储设备叫做海量存储器或者第二存储器系统。使用在个人计算机上常见的有三种类型磁性的光学的以及固态的。磁性存储器通过磁化微小的颗粒在一个硬盘或者磁带表面来表示数据。虽然第一台个人计算机使用和磁带来存储但是软磁盘存储不久后开始变得可行。现今最常见的磁性存储科技的例子是磁盘或者磁盘驱动器。AI翻译只读存储器ROM包含一小组称为引导加载程序的指令和数据。引导加载程序的指令告诉数字设备如何启动。通常引导加载程序会执行自检以确定硬件是否运行正常并可能验证基本程序是否未被损坏。随后它将操作系统加载到随机存取存储器RAM中。RAM是临时性且易失的而ROM则更具永久性且非易失。即使设备关闭ROM中的内容仍保持不变。大多数计算机还配备有称为大容量存储或辅助存储系统的附加存储设备。个人计算机常用的有三种类型磁存储、光存储和固态存储。磁存储通过在磁盘或磁带表面磁化微观粒子来表示数据。首批个人计算机使用盒式磁带进行存储但软盘存储很快便问世。如今磁存储技术最常见的例子是磁盘或称硬盘驱动器HDD。单词打卡下一篇待续