天天看點

給一個數字,輸出人民币組合(JavaScript算法)

給一個數字,輸出人民币組合(JavaScript算法)

題目:

人民币由100元,50元,20元,10元,5元,1元,5角,1角面額組合。寫一個方法随便傳入一個數字參數,就輸出人民币組合。

比如傳入1526.5就顯示1526.5元由人民币100元15張,20元1張,5元一張1元一張5角一張構成。無需考慮多種組合方式,隻需考慮最簡單的組合方式。

思考:

我們首先封裝一個函數,用一個形參來接收輸入的值

分析這個值,可能有小數

計算整數位:用/來取模,用%來取餘。從大到小依次計算

計算小數位:n*10%10,就可以轉成整數了,然後就和整數位計算一樣了

運作結果:

給一個數字,輸出人民币組合(JavaScript算法)

代碼:

以下就是我用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:我們隻要了解怎麼取模和取餘數,這樣問題就很簡單了。

類似的問題還有很多,比如:

給一個時間戳,計算年月日或者時分秒

給一個整數,計算個位、十位、百位、千位...

本文完~