class Program
{
static double h = 100; //两地总距离
static double s = 0; //小鸟飞行总距离
const int birdSpeed = 30; //小鸟飞行速度
const int aSpeed = 20; //火车速度A
const int bSpeed = 15; //火车速度B
static void Main(string[] args)
{
for (; ; )
{
double time = h / (birdSpeed + aSpeed); //第一次小鸟与火车相遇所用时间
h = h - aSpeed * time + bSpeed * time; //相遇后两火车之间距离
if (h < 0.1) //判断是否相遇
{
Console.WriteLine(s);
break;
}
else
{
s = s + birdSpeed * time; //没有相遇,累计小鸟飞行距离
time = h / (birdSpeed + bSpeed); //飞向另一火车所用时间
h = h - aSpeed * time + bSpeed * time; //剩余距离
if (h < 0.1)
{
Console.WriteLine(s);
break;
}
else s = s + birdSpeed * time;
}
}
Console.ReadKey();
}
}
得出的总飞行距离不对. 可能是思路不对吧 . 刚才学不久别笑我啊