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

相关文章
|
7月前
|
算法 安全 网络协议
java高级面试题_java面试题大全带答案_线程面试题_java面试宝典2019
java高级面试题_java面试题大全带答案_线程面试题_java面试宝典2019
|
8月前
|
Java API
【Java每日一题】— —第三题:自动判分
【Java每日一题】— —第三题:自动判分
|
8月前
|
存储 监控 小程序
2024年java面试准备--多线程篇(1)(二)
2024年java面试准备--多线程篇(1)(二)
104 1
|
8月前
|
监控 Java 调度
2024年java面试准备--多线程篇(1)(一)
2024年java面试准备--多线程篇(1)(一)
163 1
|
8月前
|
存储 安全 前端开发
Java面试题汇总(一)(上)
Java面试题汇总(一)(上)
103 0
|
8月前
|
消息中间件 Java 数据库连接
Java面试题汇总(一)(中)
Java面试题汇总(一)(中)
|
8月前
|
消息中间件 缓存 Java
Java面试题汇总(一)(下)
Java面试题汇总(一)(下)
|
8月前
|
存储 安全 Java
2024年java面试准备--多线程篇(2)(一)
2024年java面试准备--多线程篇(2)(一)
61 0
|
8月前
|
存储 SQL 缓存
2024年java面试准备--多线程篇(2)(二)
2024年java面试准备--多线程篇(2)(二)
51 0
|
Java 调度
【Java练习题】Java 程序的输出 | 第十六套(线程)
【Java练习题】Java 程序的输出 | 第十六套(线程)
61 0