
cpp
int v1 = 0, v2 = 0, t = 0, s = 0, l = 0
, m = 0, j1 = 0, j2 = 0, d = 0;
std::cin >> v1 >> v2 >> t >> s >> l;
if (v1 < 101 && v2 < 101 && t < 301 && s < 11 && l < 10001 && v1 > v2 && l % (v1 * v2) == 0)//最大公倍数
d = 1;
else
d = 0, std::cout << "输入数据有误!距离为速度公倍数,且不大于,因此,要判断输入数据是否正确。\n缘由https://ask.csdn.net/questions/8063268\n";
//这种小题确有推敲之处, 4 2 2 2 40
js:if (d)
{
++m;
if (j2 < l && j1 < l)
{//当龟兔都未达同增
j1 += v1;
j2 += v2;
}
else
goto tz;
if (j1 < l)
{//当兔未达且睡且龟未达龟增。
if (j2 < l && j1 - j2 >= t)j2 += v2 * s, m += s;
ts:if (j2 > l)
{//避免每次循环
j2 -= v2, --m;
goto ts;
}
}
else
goto tz;
goto js;
}
tz:std::cout << (j1 == j2 ? "D同达终点\n" : j1 > j2 ? "R兔子获胜\n" : "T乌龟获胜\n")
<< j1 << " " << j2 << " " << --m << "秒\n";
cpp
int v1 = 0, v2 = 0, t = 0, s = 0, l = 0
, m = 0, j1 = 0, j2 = 0, z = 0, d = 0;
std::cin >> v1 >> v2 >> t >> s >> l;
if (v1 < 101 && v2 < 101 && t < 301 && s < 11 && l < 10001 && v1 > v2 && l % (v1 * v2) == 0)//最大公倍数
d = 1;
else
std::cout << "输入数据有误!\n缘由https://ask.csdn.net/questions/8063268\n";
// 4 2 2 2 40
js:if (d)
{
++m; z = 0;
if (j2 < l && j1 < l)
{
j1 += v1;
j2 += v2;
}
else
goto tz;
if (j1 < l)
{//这种小题确有推敲之处
if (j1 - j2 >= t)
ts:if (j2 < l && z < s)
{
j2 += v2, ++z, ++m;
goto ts;
}
}
else
goto tz;
goto js;
}
tz:std::cout << (j1 == j2 ? "D同达终点\n" : j1 > j2 ? "R兔子获胜\n" : "T乌龟获胜\n")
<< j1 << " " << j2 << " " << --m << "秒\n";

我以此施,不求人天无常,愿真正无上道成,若获无尽宝藏布施不逆意。