题目链接:1064 朋友数 (20 point(s))

题目描述

如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。

输入格式

输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于 10​4​​。

输出格式

首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格。

输入样例

8
123 899 51 998 27 33 36 12

输出样例

4
3 6 9 26

Java代码

/**********************************************************************************
Submit Time Status Score Problem Compiler Run Time User
7/29/2019, 19:31:23 Accepted 20 1064 Java (openjdk) 96 ms wowpH
**********************************************************************************/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] number = br.readLine().split(" "); // n个正整数 boolean[] friends = new boolean[37]; // 朋友证号最大为36
int theNumberOfFriends = 0; // 朋友证号的个数
for (int i = 0; i < n; ++i) {
char[] num = number[i].toCharArray(); // 第i个正整数
int friendNumber = 0; // 第i个正整数的朋友证号
for (int j = 0; j < num.length; ++j) {
friendNumber += num[j] - 48; // 每一位的和
}
if (false == friends[friendNumber]) { // 新的朋友证号
++theNumberOfFriends; // 个数加1
friends[friendNumber] = true; // 设为已存在
}
} System.out.println(theNumberOfFriends);
for (int i = 0, j = 0; i < 37; ++i) {
if (true == friends[i]) {
System.out.print(i);
if ((++j) < theNumberOfFriends) { // 不是最后一个朋友证号
System.out.print(" "); // 空格分隔
}
}
}
}
}

最新文章

  1. Python中内置数据类型list,tuple,dict,set的区别和用法
  2. centos7设置网关
  3. ubuntu host备份 ubuntu无法解析主机
  4. EXCEL文件格式不匹配,或者已经损坏,除非信任来源
  5. 【BZOJ-2648&amp;2716】SJY摆棋子&amp;天使玩偶 KD Tree
  6. Best Time to Buy and Sell Stock | &amp; || &amp; III
  7. JSTL.带标签体的标签,方法和例子
  8. 转载:CSS3 圆角(border-radius)
  9. phpcms源码跟踪(1)
  10. JSON基础学习
  11. 平移关节(Prismatic Joint)
  12. 【转】centos安装vim7.4
  13. IDEA springboot 项目静态文件修改不更新的问题
  14. 【Zuul】Zuul过滤器参考资料
  15. luogu P2000 拯救世界
  16. 13机器学习实战之PCA(1)
  17. hadoop的namenode启动失败
  18. day07--字符编码、文件处理
  19. ubuntu查找命令比较
  20. oracle增加sequence

热门文章

  1. GPS 经纬度
  2. Oracle中的统计信息
  3. https://suchprogramming.com/epoll-in-3-easy-steps/
  4. MiniUI表单验证实践
  5. blaze advisor模型部署工具
  6. spring-data-redis数据类型
  7. iOS App Store网址的命名规则
  8. 机器学习中的数学-线性判别分析(LDA)
  9. 静态站点生成器-md-vue-vuepress
  10. webStorm 如何修改angular中html的字体颜色