自学内容网 自学内容网

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)!