题解 | #人民币转换#
人民币转换
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)
})()
#你觉得今年春招回暖了吗#