题解 | #学英语#
学英语
https://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let obj = {
0: "",
1: "one",
2: "two",
3: "three",
4: "four",
5: "five",
6: "six",
7: "seven",
8: "eight",
9: "nine",
10: "ten",
11: "eleven",
12: "twelve",
13: "thirteen",
14: "fourteen",
15: "fifteen",
16: "sixteen",
17: "seventeen",
18: "eighteen",
19: "nineteen",
20: "twenty",
30: "thirty",
40: "forty",
50: "fifty",
60: "sixty",
70: "seventy",
80: "eighty",
90: "ninety",
};
let list = [];
rl.on("line", function (line) {
let num = line - 0;
if (num < 100) {
console.log(getNum(num));
return;
} else if (num >= 100 && num < 1000) {
let a = getNum(num % 100);
let b = getNum(Math.trunc(num / 100));
console.log(b + (b && " hundred ") + (b && a && "and ") + a);
return;
} else if (num >= 1000 && num < 100000) {
let a = getNum(num % 100);
let b = getNum(Math.trunc(num / 100) % 10);
let c = getNum(Math.trunc(num / 1000));
console.log(
c + " thousand " + b + (b && " hundred ") + (b && a && "and ") + a
);
return;
} else if (num >= 100000 && num < 1000000) {
let a = getNum(num % 100);
let b = getNum(Math.trunc(num / 100) % 10);
let c = getNum(Math.trunc(num / 1000) % 100);
let d = getNum(Math.trunc(num / 100000));
console.log(
d +
(d && " hundred and ") +
c +
" thousand " +
b +
(b && " hundred ") +
(b && a && "and ") +
a
);
return;
} else if (num >= 1000000 && num < 10000000) {
let a = getNum(num % 100);
let b = getNum(Math.trunc(num / 100) % 10);
let c = getNum(Math.trunc(num / 1000) % 100);
let d = getNum(Math.trunc(num / 100000) % 10);
let e = getNum(Math.trunc(num / 1000000));
console.log(
e +
" million " +
d +
(d && " hundred and ") +
c +
" thousand " +
b +
(b && " hundred ") +
(b && a && "and ") +
a
);
return;
}
});
function getNum(n) {
if (n <= 20) {
return obj[n];
} else {
let a = n % 10;
let b = n - a;
return obj[b] + (obj[a] && " ") + obj[a];
}
}
查看5道真题和解析