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

题目:

人民币由100元,50元,20元10元,5元1元,5毛,1毛面额组合。写一个方法随便传入一个数字参数,就输出人民币组合。
比如传入1526.5就显示1526.5元由人民币100元15张,20元1张,5元一张1元一张5毛一张构成。无需考虑多种组合方式,只需考虑最简单的组合方式。

 

思考

 

 

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

 

 

分析这个值,可能有小数

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

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

 

 

运行结果

https://www.houdianzi.com/ logo设计公司

代码:

以下就是我用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:我们只要理解怎么取模和取余数,这样问题就很简单了。

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

给一个时间戳,计算年月日或者时分秒
给一个整数,计算个位、十位、百位、千位...
posted @ 2021-08-16 20:31  酷儿q  阅读(150)  评论(0编辑  收藏  举报