贪心算法

117 阅读1分钟
找零钱
const allMoney = [100, 50, 20, 10, 5, 1];
        function changeMoney(n, allMoney) {
            //数组长度
            const length = allMoney.length;
            //设定一个空数组,存储结果
            const result = [];
            //遍历所有的钱币
            for (let i = 0; i < length; i++) {
                //判断总价大于钱币中的哪个
                if (n >= allMoney[i]) {
                    //最大面值找出来
                    result[i] = parseInt(n / allMoney[i]);
                    //更新剩下要找的钱
                    n = n - result[i] * allMoney[i];
                } else {
                    //无法找钱
                    result[i] = 0
                }
            }
            return result;
        }
        console.log(changeMoney(226, allMoney));
数字转罗马数字

 function intTO(num) {
            var arr = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
            var romanArr = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];
            var str = "";
            for (var i = 0; i < arr.length; i++) {
                while (num >= arr[i]) {
                    str += romanArr[i];
                    num -= arr[i];
                }
            }
            return str
        }