1064 朋友数(JAVA)

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

 

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

输入格式:

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

输出格式:

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

输入样例:

8
123 899 51 998 27 33 36 12

image.gif

输出样例:

4
3 6 9 26

image.gif

代码实现:

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
 * @author yx
 * @date 2022-07-23 23:58
 */
public class Main {
    static PrintWriter out=new PrintWriter(System.out);
    static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));
    static StreamTokenizer in=new StreamTokenizer(ins);
    public static void main(String[] args) throws IOException {
        in.nextToken();
        int N=(int) in.nval;
        Set<Integer> set=new HashSet<>();
        String[] split=ins.readLine().split(" ");
        for (int i = 0; i < N; i++) {
            String s=split[i];
            int n=s.length();
            int sum=0;
            for (int j = 0; j < n; j++) {
                sum+=s.charAt(j)-'0';
            }
            set.add(sum);
        }
        ArrayList<Integer> list=new ArrayList<>(set);
        Collections.sort(list);
        System.out.println(list.size());
        for (int i = 0; i < list.size()-1; i++) {
            System.out.print(list.get(i)+" ");
        }
        System.out.print(list.get(list.size()-1));
    }
}

image.gif

相关文章
java202303java学习笔记第三十九天最大并行数
java202303java学习笔记第三十九天最大并行数
28 0
java202303java学习笔记第三十九天综合练习多线程求最大值
java202303java学习笔记第三十九天综合练习多线程求最大值
43 0
java202303java学习笔记第三十三天随机点名之1
java202303java学习笔记第三十三天随机点名之1
46 0
java202302java学习笔记第十天-求数组的最大值
java202302java学习笔记第十天-求数组的最大值
66 0
java202302java学习笔记第十天-求数组的最大值
java202302java学习笔记第五天-while循环详解
java202302java学习笔记第五天-while循环详解
65 0
java202302java学习笔记第五天-while循环详解
java202302java学习笔记第五天-doWhile循环
java202302java学习笔记第五天-doWhile循环
71 0
java202302java学习笔记第五天-doWhile循环
java202302java学习笔记第一天-解决大家的疑惑2
java202302java学习笔记第一天-解决大家的疑惑2
78 0
java202302java学习笔记第一天-解决大家的疑惑2
java202302java学习笔记第一天-解决大家的疑惑1
java202302java学习笔记第一天-解决大家的疑惑1
113 0
java202302java学习笔记第一天-解决大家的疑惑1
java202302java学习笔记第二天-数据类型扩展和面试题1
java202302java学习笔记第二天-数据类型扩展和面试题1
44 0
java202302java学习笔记第二天-数据类型扩展和面试题1
java202302java学习笔记第二天-数据类型扩展和面试题2
java202302java学习笔记第二天-数据类型扩展和面试题2
58 0
java202302java学习笔记第二天-数据类型扩展和面试题2
下一篇
无影云桌面