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

解决方案 »

  1.   

    可能不是很精确.思路是这样的.
    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);

    }