Maison  >  Article  >  interface Web  >  Question amusante JavaScript : courses de tortues

Question amusante JavaScript : courses de tortues

黄舟
黄舟original
2017-02-04 15:37:241041parcourir

Deux tortues, nommées A et B, font la course.

A se déplace à une vitesse de 720 pieds par heure.

Le jeune B sait que A doit courir plus lentement que lui, il mange donc toujours des légumes calmement.

Lorsque B commence à courir, il constate que A a déjà 70 pieds d'avance, mais la vitesse de B est de 850 pieds par heure, il peut donc certainement rattraper son retard.

Excusez-moi, combien de temps faudra-t-il à B pour rattraper A ?

Une situation plus générale : étant donné deux vitesses v1 (la vitesse de A, un entier >0), v2 (la vitesse de B, un entier >0), et un écart d'avance g (g> ; 0), combien de temps faut-il à B pour rattraper A ?

Le résultat doit être un tableau, [h, mn, s], h, mn, s représente les heures, les minutes et les secondes.

Si une situation anormale se produit, par exemple v1 >= v2, de sorte que B ne puisse jamais rattraper A, alors null sera renvoyé directement.

Par exemple :

race(720, 850, 70) // => [0, 32, 18]  
race(80, 91, 37)   // => [3, 21, 49]

Il y a deux points clés dans cette question :

Tout d'abord, nous devons clarifier la relation dans le processus où B poursuit A. , A je n'ai jamais été inactif et je ne me suis jamais arrêté !

Donc si vous voulez que B rattrape A, vous devez satisfaire cette équation :

v1 * temps g = v2 * temps

C'est très simple de trouver le temps de cette façon, mais le plus important est de savoir comment diviser le temps en heures, minutes et secondes.

Mon approche consiste à trouver d'abord l'horloge, à trouver les minutes en fonction du reste, puis à trouver les secondes en fonction du reste.

function race(v1, v2, g) {  
    var h = -1;  
    var mn = -1;  
    var s = -1;  
    var remainder;  
    var speedGap = v2 - v1;  
    if(speedGap > 0){  
        remainder = g % speedGap;  
        h = parseInt(g / speedGap);  
        mn = parseInt(60 * remainder / speedGap);  
        remainder = remainder * 60 % speedGap;  
        s = parseInt(remainder * 60 / speedGap);  
        return [h, mn, s];  
    }  
    return null;  
}

Ce qui précède est le contenu de JavaScript Fun Question : Turtle Race. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn