JavaScript PAT乙级题解 1064 朋友数
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。
输入格式:
输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于 104。
输出格式:
首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格。
输入样例:
8
123 899 51 998 27 33 36 12
输出样例:
4
3 6 9 26
题解如下:
20/20
这题也很简单,计算出每个数的各位之和,如果结果数组中不存在,则push进数组,最后排序输出即可
/**
* 2024/04/16
* 20/20
*/
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let num = 0;
rl.on("line", function (data) {
if (num === 0) {
num = Number(data);
} else {
let arr = data.split(" ");
deal(arr);
}
});
function deal(arr) {
let resArr = [];
arr.forEach((el) => {
let midArr = el.split("");
let sum = midArr.reduce((acc, cur) => acc + Number(cur), 0);
if (resArr.indexOf(sum) === -1) {
resArr.push(sum);
}
});
resArr.sort((a, b) => a - b);
console.log(resArr.length);
console.log(resArr.join(" "));
}
原文地址:https://blog.csdn.net/weixin_47925230/article/details/137812699
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!