TA的每日心情 | 无聊 2024-2-17 13:38 |
---|
签到天数: 1063 天 [LV.10]大乘
|
本帖最后由 martian 于 2014-2-24 17:29 编辑
独角兽 发表于 2014-2-24 15:16
松鼠和我的小学数学老师都感到很欣慰。呼叫公式达人,和编程达人用大学和计算机的方法来解题。。。 ...
处于计算精度的考虑,把速度换算为米/秒,保留8位小数。
public class DogSecond {
public static void main(String[] args) {
double distance = 5000.00;
double time;
double sumTime=(double) 0;
// 甲的速度
double ASpeed = 1.38888888;
// 乙的速度
double BSpeed = 2.77777777;
// 狗的速度
double dogSpeed = 4.16666666;
double dogRun = 0;
while(distance > 0){
// 狗跑到乙花滴时间
time = calculateTime(distance,BSpeed,dogSpeed);
sumTime += time;
// 这段时间内,距离滴变化
distance = calculateDistance(distance,time,ASpeed,BSpeed);
// 狗跑到甲花滴时间
time = calculateTime(distance,ASpeed,dogSpeed);
sumTime += time;
// 这段时间内,距离滴变化
distance = calculateDistance(distance,time,ASpeed,BSpeed);
}
dogRun +=sumTime*dogSpeed;
System.out.println("The dog has run: "+dogRun);
}
public static double calculateTime(double distance, double speedA, double speedB){
Double time ;
time = distance/(speedA+speedB);
time = (double)Math.round(time*100000000)/100000000;
return time;
}
public static double calculateDistance(double distance, double time,double ASpeed, double BSpeed){
distance = distance-time*ASpeed-time*BSpeed;
distance = Math.round(distance*100000000)/100000000;
return distance;
}
}
由于计算精度的问题,最终得到4999.500003584133米。
独角兽老师布置滴作业完成了
|
评分
-
查看全部评分
|