本专栏收录于《华为OD机试(JavaScript)真题(A卷+B卷)》。
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。
考试题目和要点:
输入一个double数。
输出人民币格式。
const ten = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
const power = ["万", "亿"];
const daiwei = ["元", "角", "分", "整"];
function solveXiao(s2) {
let sb = "";
const jiao = parseInt(s2[0]);
const fen = parseInt(s2[1]);
if (jiao !== 0) {
sb += ten[jiao] + "角";
}
if (fen !== 0) {
sb += ten[fen] + "分";
}
return sb;
}
function solveZheng(zheng) {
let sb = "";
let pow = 0;
while (parseInt(zheng) !== 0) {
if (pow !== 0) {
sb += power[pow - 1];
}
const temp = parseInt(zheng % 10000);
const gewei = temp % 10;
const shiwei = Math.floor((temp / 10) % 10);
const baiwei = Math.floor((temp / 100) % 10);
const qianwei = Math.floor((temp / 1000) % 10);
if (gewei !== 0) {
sb += ten[gewei];
}
if (shiwei !== 0) {
sb += "拾";
if (shiwei !== 1) {
sb += ten[shiwei];
}
} else {
if (gewei !== 0 && (temp > 99 || parseInt(zheng) > 10000)) {
sb += ten[0];
}
}
if (baiwei !== 0) {
sb += "佰";
sb += ten[baiwei];
} else {
if (shiwei !== 0 && (temp > 999 || parseInt(zheng) > 10000)) {
sb += ten[0];
}
}
if (qianwei !== 0) {
sb += "仟";
sb += ten[qianwei];
} else {
if (baiwei !== 0 && parseInt(zheng) > 10000) {
sb += ten[0];
}
}
zheng /= 10000;
pow++;
if (pow > 2) {
pow = 1;
}
}
return sb.split('').reverse().join('');
}
function formatRMB(num) {
const s = num.toString().split(".");
if (s[1] === "00") {
return "人民币" + solveZheng(parseInt(s[0])) + "元整";
} else if (s[0] === "0") {
return "人民币" + solveXiao(s[1]);
} else {
return "人民币" + solveZheng(parseInt(s[0])) + "元" + solveXiao(s[1]);
}
}
下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路
本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。