Maison  >  Article  >  interface Web  >  Question amusante JavaScript : Acheter une voiture

Question amusante JavaScript : Acheter une voiture

黄舟
黄舟original
2017-02-04 15:33:301315parcourir

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). )!


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