const rl = require("readline").createInterface({ input: process.stdin, }); // 超过内存 rl.on("line", (line) => { var numArr = line.split(""); var firstNum = numArr.splice(0, numArr.length % 3).join(""); var changeArr = []; if (firstNum.length === 0) { } else { changeArr.push(firstNum); } // console.log(changeArr+'hahah') if (numArr.length > 0) { for (i = 0; i <= Math.ceil(numArr.length / 3); i++) { changeArr.push(numArr.splice(0, 3).join("")); } } // console.log(changeArr+'hahah') var res = ""; var newChangeArr = changeArr.reverse(); // console.log(newChangeArr) for (i = 0; i < newChangeArr.length; i++) { // console.log(newChangeArr[i]) // result.push(english(changeArr[i])); if (i === 0) { // console.log(newChangeArr[i]) res = res + english(newChangeArr[i]); } else if (i === 1) { if(english(newChangeArr[i])===''){ res=res }else{ res = english(newChangeArr[i]) + " thousand " + res; } } else if (i === 2) { res = english(newChangeArr[i]) + " million " + res; } } console.log(res); }); function english(num) { var str = ""; // console.log(num) var arr = num.split(""); var newArr = arr.reverse(); if (newArr.length > 1) { if (Number(newArr[1]) === 1) { str = secondNumEqual1(newArr[0]) + str; if (newArr[2]) { str = thirdNum(newArr[2]) + " and " + str; } } else { for (j = 0; j < newArr.length; j++) { if (j === 0) { str = firstNum(newArr[j]) + str; } else if (j === 1) { if (str === "") { str = secondNum(newArr[j]); } else { if (Number(newArr[j]) === 0) { str = str; } else { // console.log('and') str = secondNum(newArr[j]) + " " + str; } } } else if (j === 2) { if (str === "") { str = thirdNum(newArr[j]); } else { if (Number(newArr[j]) === 0) { str = str; } else { // console.log('and') str = thirdNum(newArr[j]) + " and " + str; } } } } } } else { str = firstNum(newArr[0]); // console.log(str) } return str; } function secondNumEqual1(num) { var str = ""; switch (Number(num)) { case 0: str = str + "ten"; break; case 1: str = str + "eleven"; break; case 2: str = str + "twelve"; break; case 3: str = str + "thirteen"; break; case 4: str = str + "fourteen"; break; case 5: str = str + "fifteen"; break; case 6: str = str + "sixteen"; break; case 7: str = str + "seventeen"; break; case 8: str = str + "eighteen"; break; case 9: str = str + "nineteen"; break; } return str; } function firstNum(num) { var str = ""; switch (Number(num)) { case 0: break; case 1: str = str + "one"; break; case 2: str = str + "two"; break; case 3: str = str + "three"; break; case 4: str = str + "four"; break; case 5: str = str + "five"; break; case 6: str = str + "six"; break; case 7: str = str + "seven"; break; case 8: str = str + "eight"; break; case 9: str = str + "nine"; break; } return str; } function secondNum(num) { var str = ""; switch (Number(num)) { case 0: break; case 2: str = "twenty" + str; break; case 3: str = "thirty" + str; break; case 4: str = "forty" + str; break; case 5: str = "fifty" + str; break; case 6: str = "sixty" + str; break; case 7: str = "seventy" + str; break; case 8: str = "eighty" + str; break; case 9: str = "ninety" + str; break; } return str; } function thirdNum(num) { var str = ""; switch (Number(num)) { case 0: break; case 1: str = str + "one hundred"; break; case 2: str = str + "two hundred"; break; case 3: str = str + "three hundred"; break; case 4: str = str + "four hundred"; break; case 5: str = str + "five hundred"; break; case 6: str = str + "six hundred"; break; case 7: str = str + "seven hundred"; break; case 8: str = str + "eight hundred"; break; case 9: str = str + "nine hundred"; break; } return str; }