赞
踩
模拟一个龟兔赛跑的过程。题目链接如下:
http://oj.kfcoding.com/problem/1-9
简单的模拟题,一遍遍的循环即可。
#include<cstdio> #include<iostream> using namespace std; int main(){ int v1,v2 ,t ,s,l; //兔子的速度 ; 乌龟的速度; 领先的米数; 休息时间 int l1 = 0,l2 = 0;//兔子的距离; 乌龟的距离; 初始化均为0 cin >> v1 >> v2 >> t >> s>> l; int i = 0,j = 0;//初始化为0 int flag = 0;//表示兔子是否在休息 while(l1 < l && l2 < l){//如果两者都没有到终点 if(l1 - l2 >= t && s != 0) {//如果兔子已经领先乌龟t米,则休息s秒 && s!=0 i += s;//表示休息s秒 l2 += (v2 * s);//乌龟跑了,但兔子没跑 } else{//如果没有领先,则继续跑 i ++; //表示当前的时间 l1 += v1 ; l2 += v2 ; } } if(l1 == l2){//则表示同时到达 cout << "D\n" << i; } else if(l1 >= l) {//则表示兔子先到 cout << "R\n" << i; } else {//乌龟先到 cout <<"T\n" << l / v2; } }
需要注意的是,如果是乌龟先跑完,则不要将时间输出错误,而应该是l / v2;
这个时间。
10 5 5 0 20
10 5 5 2 30
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。