zoukankan      html  css  js  c++  java
  • 给一个数字,输出人民币组合(JavaScript算法)

    人民币组合问题

    题目:人民币由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:我们只要理解怎么取模和取余数,这样问题就很简单了。
    类似的问题还有很多,比如:

    • 给一个时间戳,计算年月日或者时分秒
    • 给一个整数,计算个位、十位、百位、千位...
  • 相关阅读:
    POJ 1436 Horizontally Visible Segments (线段树+区间覆盖)
    HDU 4671 Backup Plan (构造)
    POJ 3325 Help with Intervals (线段树(难))
    HDU 4649 Professor Tian (位运算 + 按位DP)
    HDU 4662 MU Puzzle (YY+枚举)
    HDU 4638 Group (线段树 + 离线)
    深入浅出Node.js (附录A)
    JS的变量声明和函数声明提升
    JS基础:翻转数组
    JS基础:求一组数中的最大最小值,以及所在位置
  • 原文地址:https://www.cnblogs.com/lovelyk/p/14295722.html
Copyright © 2011-2022 走看看