首页 >web前端 >js教程 > 正文

JavaScript趣题:买车子

原创2017-02-04 15:33:300511
小王有一台很旧的车,大概值2000块钱,而且很容易出手。

他看中了一台价值8000块的二手车,想在存够钱后买下它。

他估摸着每个月能存1000块钱。

他现在的车和那台二手车,每个月都会降价,最开始是降1%,然后每隔两个月,降价幅度都会增加0.5%。

比如,第一个月会降价1%,第二个月就降了1.5%,第三个月就还是降了1.5%,第四个月是2%。

换句话说,逢单月降价幅度和前一个月一样,逢双月,降价幅度比前一个月加0.5%。

你能帮帮他吗?

他至少得存多少个月的钱才能买下这部二手车?那时他买车后还可以剩下多少钱?

函数原型如下:

nbMonths(startPriceOld, startPriceNew, savingperMonth, percentLossByMonth)

分别对应:旧车价格,二手车价格,每月存款定额,第一个月降幅

例子:

nbMonths(12000, 8000, 1000, 1.5) // [0, 4000]

这种情况,旧车比二手车价值还高些,那还用等啥?直接买呗!还能赚个4000块!

nbMonths(8000, 8000, 1000, 1.5) // [0, 0]

这种情况,直接以旧换新,两两相抵了。

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中文网(m.sbmmt.com)!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签: JavaScript趣题
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息

    黄舟

    人生最曼妙的风景,竟是内心的淡定与从容!

    最近文章
    php实现字符串匹配算法之sunday算法的示例3314
    css中关于hideFocus的使用详解3361
    JavaScript中filter函数的详细介绍3127
    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类