日期:2014-05-20  浏览次数:20873 次

小狗来回跑的问题
小明一家出去旅游,结果爸爸有事,小明就和小狗先走十分钟,速度为80米每分钟,十分钟后,爸爸开始走,小明先80米每钟的速度走十分钟和再以160米每分钟的速度走十分钟,然后这样交替前进,爸爸以75米每分钟的速度走十分钟后再以每分钟200米的速度前进,然后交替变速前进(即每十分钟换一次速度),当爸爸出发后,小狗以每分钟500的速度来回跑于儿子和爸爸之间,试用面向对象(JAVA)的编程思想,儿子给出时间参数后,求出小狗离家的距离,以及来回跑了多少次?
请告诉我思想是什么?谢谢

------解决方案--------------------
关注
------解决方案--------------------
式子挺多的,这问题比较琐碎。

思想嘛,不好说
------解决方案--------------------
线程。
------解决方案--------------------
可能不是很精确.思路是这样的.
Java code
    static void getLength(){
        double sFather = 0;//爸爸离家的距离
        double sSon = 800;//儿子离家的距离
        double sDog = 800;//小狗离家的距离
        int time = 4;//参数,儿子的时间参数,不包括开始的10分钟
        int flg = -1;//小狗跑的方向,朝爸爸为-1,朝儿子为1
        int t = 1;//时间的循环变量,以一秒为单位
        int cnt = 0;//小狗在爸爸跟儿子间来回的次数
        
        while(t <= time*60){
            double vFather = (double)75/60;//1秒的速度
            double vSon = (double)80/60;//1秒的速度
            if(t % (20*60) > (10*60)){
                vFather = (double)200/60;//1秒的速度
                vSon = (double)160/60;//1秒的速度
            }
            sFather += vFather;
            sSon += vSon;
            sDog += flg * 500/(double)60;//加小狗1秒的速度
            t++;
            if(sFather >= sDog) {flg = 1; cnt++;}
            if(sSon <= sDog) {flg = -1; cnt++;}
        }

        System.out.println(sDog);
        System.out.println(cnt);
        
    }

------解决方案--------------------
两个类
------解决方案--------------------
友情up