题解 | #人民币转换#

人民币转换

https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b

解题思路如下:

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    let line = await readline()
    let [num1, num2] = line.split(".")
    const strs = num1.replace(/(?=(\d{4})+$)/g, ".").split('.').filter(Boolean)
    // console.log(strs)
    const chars = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']
    const unit = ['', '拾', '佰', '仟']
    const bigUnit = ['', '万', '亿']

    // 转换四位以下的数字
    function _transform(numStr){
        let result = ''
        for(let i=0; i<numStr.length; i++){
            const digit = +numStr[i]
            const c = chars[digit]
            const u = unit[numStr.length - i - 1]
            // 如果digit为'0',则不加单位
            if(digit===0){
                // 如果result末尾不是'零',才可以加
                if(result[result.length-1] !== chars[0]){
                    result += c
                }
                
            }else{
                result += c+u
            }
        }
        if(result[result.length-1]===chars[0]){
            result = result.slice(0, -1)
        }
        return result
    }
    // _transform('1200')

    let result = '人民币'
    for(let i=0; i<strs.length; i++){
        const part = strs[i]
        const c = _transform(part)
        const u = c ? bigUnit[strs.length - i - 1] : ''
        result += c+u
    }
    // console.log(result)
    if(result !== '人民币'){
        result = (result + '元').replace(/壹拾/g,'拾')
    }
    
    if(num2 === '00'){
        result += '整'
    }else{
        if(num2[0] !== '0'){
            result += chars[num2[0]] + '角'
        }
        if(num2[1] !== '0'){
            result += chars[num2[1]] + '分'
        }
    }
    console.log(result)
})()
#你觉得今年春招回暖了吗#
全部评论

相关推荐

头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务