ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の楽しい質問: 車の購入
Xiao Wang は約 2,000 元の価値がある非常に古い車を所有しており、簡単に売ることができます。
彼は 8,000 元の中古車が気に入り、十分なお金を貯めてから購入したいと考えています。
彼は毎月 1,000 元を節約できると見積もっています。
彼の現在の車とその中古車の価格は、最初は 1% ずつ毎月減額され、その後 2 か月ごとに 0.5% ずつ減額されます。
例えば、1ヶ月目は1%、2ヶ月目は1.5%、3ヶ月目は1.5%、4ヶ月目は2%割引となります。
つまり、単月の値下げ幅は前月と同じで、偶数月の値下げ幅は前月より0.5%高いということになります。
彼を手伝ってもらえますか?
この中古車を買うには何ヶ月分の貯金が必要ですか?車を買った後、彼にはいくらお金が残りますか?
関数のプロトタイプは次のとおりです:
nbMonths(startPriceOld, startPriceNew, SavingperMonth,percentLossByMonth)
は、中古車価格、中古車価格、月次デポジット枠、最初の月のドロップに対応します
例:
nbMonths(12000, 8000, 1000, 1.5) // [0, 4000]
この場合、中古車よりも古い車の方が価値があるのに、なぜ待つ必要があるのでしょうか?買ってください! 4,000円も稼げる!
nbMonths(8000, 8000, 1000, 1.5) // [0, 0]
この場合、古いものを新しいものと交換するだけで、2 つは相殺されます。
nbMonths(2000, 8000, 1000, 1.5) // [6, 766]
この場合、6か月かかり、最終残高は766.158…小数点以下が続くのを待って、766元に切り上げます。
この質問はとても簡単な足し算、引き算、掛け算、割り算ですが、利息を得るために銀行にお金を預けるという考えなど、あまり考えすぎないでください~
それでは、コードに直接進みましょう:
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)]; }
上記は JavaScript の興味深い質問です: 車の内容を購入してください。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。