题解 | #学英语#

学英语

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];
    }
}

全部评论

相关推荐

牛客316659795号:不是,证明hr初筛已经过了,要投给部门筛一遍
点赞 评论 收藏
分享
03-12 11:54
门头沟学院 Java
dghyuiok:佬太厉害了,我也27双非,只会黑马商城和苍穹外卖,靠这两个烂大街项目,装成大三面了4个一个没中
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务