PAT-1002 写出这个数 (20分) JavaScript(node)

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100​​ 。

输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

解题思路:

  • 通过读取题干信息,很容易可以得知,此题先求和

  • 再将得到的 sum 值,按位翻译,定义一个转义数组 0-9,汉字拼音

  • 而每个数字正好可以对应转义数组的下标

JavaScript(node 12.18.4)

var buf = "";
process.stdin.on("readable", function () {
    var chunk = process.stdin.read();
    if (chunk) buf += chunk.toString();
});

process.stdin.on("end", function () {
    const a = compute(buf);
    console.log(a);
});
var count = 0 ;
function compute(num) {
    num = num.replace('
','')
    var tmp = (""+num).split('');
    var sum = 0
    for (var i = 0; i < tmp.length; i++) {
        sum += parseInt(tmp[i])
    }
    var sumArr = (""+sum).split('');
    var dirn = ['ling','yi','er','san','si','wu','liu','qi','ba','jiu']
    var word = ''
    for(var i =0;i<sumArr.length;i++){
        word += i == sumArr.length -1 ? dirn[sumArr[i]] : dirn[sumArr[i]] + ' '
    }
    return word;
};
原文地址:https://www.cnblogs.com/echoyya/p/14251293.html