给一个数字,输出人民币组合(JavaScript算法)


来源 | https://www.cnblogs.com/lovelyk/p/14295722.html

题目:

人民币由100元,50元,20元,10元,5元,1元,5角,1角面额组合。写一个方法随便传入一个数字参数,就输出人民币组合。

比如传入1526.5就显示1526.5元由人民币100元15张,20元1张,5元一张1元一张5角一张构成。无需考虑多种组合方式,只需考虑最简单的组合方式。

思考:

我们首先封装一个函数,用一个形参来接收输入的值

分析这个值,可能有小数

计算整数位:用/来取模,用%来取余。从大到小依次计算

计算小数位:n*10%10,就可以转成整数了,然后就和整数位计算一样了

运行结果:


代码:

以下就是我用js代码,写的人民币组合算法。  

<!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title></head><body>    <script>
        var n = 1526.5;        //调用        var obj = rmb(n);        console.log(obj)
        function rmb( n ){
            console.log( n );            var a100 = parseInt( n / 100 );            var value = n % 100;
            var a50 = parseInt( value / 50 );            value = value % 50;
            var a20 = parseInt( value / 20 );            value = value % 20;
            var a10 = parseInt( value / 10 );            value = value % 10;
            var a5 = parseInt( value / 5 );            value = value % 5;
            var a1 = parseInt( value );
            //把小数 转成 整数            value = n * 10 % 10;            a05 = parseInt(value / 5);
            var a01 = parseInt( value % 5 )
            return {a100,a50,a20,a10,a5,a1,a05,a01};        }</script></body></html>

PS:我们只要理解怎么取模和取余数,这样问题就很简单了。

类似的问题还有很多,比如:

给一个时间戳,计算年月日或者时分秒
给一个整数,计算个位、十位、百位、千位...

本文完~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值