1. 程式人生 > >爸爸兒子和狗狗

爸爸兒子和狗狗

/*
父親與兒子帶著狗外出散步,兒子帶著狗先出門,十秒鐘後父親才出門。
就在父親出門的一瞬間,狗回頭跑向父親,跑到父親的跟前,緊接著又返回頭來向兒子跑去,到了兒子的跟前又返回頭跑向父親……
這樣,來回跑著,一直到父親追上兒子為止。
已知:狗跑的速度是每秒5米;父親走的速度是每秒2米;兒子散步的速度是每秒1米。
請問:從父親出門到追上兒子的這段時間內,狗一共連續跑了幾米??
A.50米 B。51米 C.49米 D.53米 E。52米
解:設從父親出門到父親追上兒子的時間為x秒。由題意可得如下關係:?
1*(x+10)=2x?
解得:x=10?

不論狗跑了多少個來回,狗都跑了10秒鐘,那麼5*10=50,。選A。

那狗狗跑了多少個來回呢?

無窮多個,個人認為。

歡迎評論

*/
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char* argv[])
{
    double v_father=2;
    double v_son=1;
    double v_dog=5;
    int cnt=0;
    double distance=10;
    double sum=0;
    double v_plus=v_father+v_dog;
    double v_minus=v_dog-v_son;
    double d_dog;
    double d_father;
    double d_son;
    double time;
    double total_time=0;
    while(distance>1e-6 ||total_time-10>=1e-6) {
         cnt ++;
         if(cnt%2==1) {
             time=distance/v_plus;
             d_dog=time*v_dog;
             distance = time*v_son + d_dog;
             
         }
         else {
             time =  distance/v_minus;
             d_dog=time*v_dog;
             distance = d_dog-v_father*time;
         }
         sum += d_dog;
         total_time+=time;
         printf("%d %lf\n",cnt,sum);
    }
    system("pause");
    return 0;
}