Maison >interface Web >js tutoriel >Question amusante JavaScript : Acheter une voiture
Xiao Wang possède une très vieille voiture, d'une valeur d'environ 2 000 yuans, et elle est facile à vendre.
Il s'est pris d'affection pour une voiture d'occasion d'une valeur de 8 000 yuans et veut l'acheter après avoir économisé suffisamment d'argent.
Il estime pouvoir économiser 1 000 yuans chaque mois.
Le prix de sa voiture actuelle et de cette voiture d'occasion sera réduit chaque mois, initialement de 1%, puis tous les deux mois, la réduction de prix augmentera de 0,5%.
Par exemple, le prix sera réduit de 1% le premier mois, de 1,5% le deuxième mois, de 1,5% le troisième mois et de 2% le quatrième mois.
En d'autres termes, la réduction de prix pour les mois simples est la même que celle du mois précédent, et la réduction de prix pour les mois pairs est supérieure de 0,5% à celle du mois précédent.
Pouvez-vous l'aider ?
Combien de mois d'économies doit-il économiser pour acheter cette voiture d'occasion ? Combien d’argent lui restera-t-il après l’achat de la voiture ?
Le prototype de la fonction est le suivant :
nbMonths(startPriceOld, startPriceNew, savingperMonth, percentLossByMonth)
correspondent respectivement à : prix de la voiture d'occasion, voiture d'occasion prix, quota de dépôt mensuel, diminution du premier mois
Exemple :
nbMonths(12000, 8000, 1000, 1.5) // [0, 4000]
Dans ce cas, la vieille voiture vaut plus que la voiture d'occasion, alors pourquoi attendre ? Achetez-le! Vous pouvez également gagner 4 000 yuans !
nbMonths(8000, 8000, 1000, 1.5) // [0, 0]
Dans ce cas, échangez simplement l'ancien contre le nouveau, et les deux seront compensés.
nbMonths(2000, 8000, 1000, 1.5) // [6, 766]
Dans ce cas, cela prendra 6 mois, et le solde final est de 766,158... Attendez une série de décimales, et arrondissez à 766 yuans.
Cette question est une addition, une soustraction, une multiplication et une division très simples, mais n'y pensez pas trop, comme l'idée de déposer de l'argent à la banque pour gagner des intérêts~
D'accord, passons directement au code :
function nbMonths(startPriceOld, startPriceNew, savingperMonth, percentLossByMonth){ percentLossByMonth /= 100; var months = 1; var percentLossIncrement = 0.005; var alreadyHaveMoney = 0; while(startPriceOld + alreadyHaveMoney < startPriceNew){ if(months % 2 === 0){ percentLossByMonth += percentLossIncrement; } startPriceOld *= (1 - percentLossByMonth); startPriceNew *= (1 - percentLossByMonth); alreadyHaveMoney += savingperMonth; months++; } return [months-1,Math.round(startPriceOld + alreadyHaveMoney - startPriceNew)]; }
Ce qui précède est la question JavaScript amusante : acheter une voiture. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn). )!