Maison > Article > interface Web > Question amusante JavaScript : courses de tortues
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) !