题解 | #学英语#
学英语
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]; } }