解题思路:
思路就是这样子写,一开始的路程都设为0,判断m1-m2>=t ,符合兔子就偷懒,
不符合的,两个都开始向前跑1s,再往下判断是不是超出了长度 l ,
一、如果两个都超出了 l ,那么两个同时到达终点,因为乌龟是不休息的,所以时间为 l/v1;
二、如果乌龟先到达终点,那么乌龟赢,兔子输了,那么时间还是算乌龟的,所以时间为 l /v1;
三、如果兔子先到达终点,那么兔子赢了,乌龟输了,(兔子会偷懒,所以时间另外算):
用 d 保存(初始化 = 0),符合m1-m2>=0,偷懒 s 秒->d= d + s;
不符合,都不偷懒都+1s,我们只算乌龟的,所以 d = d + 1;
最后如果都不符合的,一直循环,直到符合情况里面的一种,就退出循环了。
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; int main() { int v1, v2, t, s, l, d = 0, m1, m2; cin >> v1 >> v2 >> t >> s >> l; m1 = m2 = 0 ; while(1) { if(m1 - m2 >= t) { m2 = m2 + v2 * s; d = d + s; } else { m1 = m1 + v1; //两个同时跑 1s 钟 m2 = m2 + v2; d++; } if(m1 >= l && m2 >= l) //双赢 { cout << "D" << endl; cout << l/v2 << endl; break; } if(m1 >= l && m2 < l) //兔子获胜 { cout << "R" << endl; cout << d << endl; break; } if(m1 < l && m2 >= l) //乌龟胜利 { cout << "T" << endl; cout << l/v2 << endl; break; } } return 0; }
0.0分
0 人评分
【偶数求和】 (C语言代码)浏览:674 |
C语言训练-大、小写问题 (C语言代码)浏览:649 |
WU-小九九 (C++代码)浏览:1713 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:710 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:388 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:913 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:866 |
字符逆序 (C语言代码)浏览:506 |
简单的a+b (C语言代码)浏览:1024 |
永远的丰碑 (C语言代码)浏览:608 |