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