PAT——1064. 朋友数(set用法)
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如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 首先回顾一下题目,题目的要求是 有序,并且不重复 的输出元素,这个与set的特征完全吻合。
package com.hone.basical; import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
/**
* 原题目:https://www.patest.cn/contests/pat-b-practise/1064
* @author Xia
* 朋友数
* 上一个利用list来存储,现在利用set来存储
* 因为set是不重复,并且有序的。
*/ public class basicalLevel1064friends2Set { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
Set<Integer> sum = new TreeSet<>();
for (int i = 0; i < n; i++) {
int a = in.nextInt();
int b = 0;
while (a>0) {
b +=a%10;
a = a/10;
}
sum.add(b);
}
System.out.println(sum.size());
boolean isFirst = true;
for (Integer id : sum) {
if (!isFirst) {
System.out.print(" ");
}
System.out.print(id);
isFirst = false;
}
}
}
------------------------Set用法------------------------------------------------------- A collection that contains no duplicate elements. More formally, sets contain no pair of elementse1
ande2
such
thate1.equals(e2)
, and at most one null element. As implied by its name, this interface models the mathematical
set abstraction. 引用java Api中的话,Set实际上就是数学上集合的抽象,要求其不能有相同的元素,并且最多只能有一个空元素。 下面用具体的代码来表示其方法
package com.hone.test; import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
/**
* Set
* TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。
* @author Xia
*/
public class Sets {
public static void main(String[] args) {
Set<Integer> test = new TreeSet<>(); Set<Integer> needAdd = new TreeSet<>();
int a = 1;
int b = 2;
int c = 3;
int h = 7;
int w = 5;
test.add(a);
test.add(b);
needAdd.add(h);
needAdd.add(w);
System.out.println(test.size()); //判断容器的大戏i奥
System.out.println(test.isEmpty()); //判断容器是否为空
System.out.println(test.remove(a)); //移除容器中的a元素
test.add(c);
//利用foreach遍历
for (Integer value : test) {
System.out.print(value+" ");
}
System.out.println(); //利用Iterator实现遍历
Iterator<Integer> value = test.iterator();
while (value.hasNext()) {
int s = value.next();
System.out.print(s+" ");
}
System.out.println(); //将一个集合添加到另一个集合中
test.addAll(needAdd);
for (Integer value2 : test) {
System.out.print(value2+" ");
}
System.out.println(); //删除集合,并且利用foreach重新遍历
System.out.println(test.removeAll(needAdd));
for (Integer value2 : test) {
System.out.print(value2+" ");
}
System.out.println(); //clear()清空集合中的元素
needAdd.clear();
System.out.println(needAdd.size());
}
}
PAT——1064. 朋友数(set用法)的更多相关文章
- PAT 1064 朋友数(20)(代码)
1064 朋友数(20 分) 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如 123 和 51 就是朋友数, ...
- PAT——1064. 朋友数
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”.例如123和51就是朋友数,因为1+2+3 = 5+1 = 6,而6就是它们的朋友证号.给定一些整数,要求 ...
- PAT 1064 朋友数
https://pintia.cn/problem-sets/994805260223102976/problems/994805267416334336 如果两个整数各位数字的和是一样的,则被称为是 ...
- PAT 1064. 朋友数(20)
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”.例如123和51就是朋友数,因为1+2+3 = 5+1 = 6,而6就是它们的朋友证号.给定一些整数,要求 ...
- PAT乙级:1064 朋友数 (20分)
PAT乙级:1064 朋友数 (20分) 题干 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如 123 和 ...
- PAT 乙级 1064 朋友数(20) C++版
1064. 朋友数(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 如果两个整数各位数字的和是一样的,则被 ...
- PAT(B) 1064 朋友数(Java)
题目链接:1064 朋友数 (20 point(s)) 题目描述 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号". ...
- PAT Basic 1064 朋友数 (20 分)
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”.例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号.给定 ...
- PAT (Basic Level) Practice (中文)1064 朋友数 (20 分) (set)
如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”.例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号.给定 ...
随机推荐
- BI简介
一.BI简介 BI全称是business intelligence,直译过来就是商业智能.BI表示的是一个体系,一套完整的解决方案.主要用于数据的整合.分析.挖掘等,为帮助企业决策而提供如报表.预测分 ...
- java时间工具类
在项目中,很多地方需要根据时间获取相应的数据,将时间格式化,或者时间比较等相关操作.一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度. /** * @author: lxw * @Da ...
- SQL SEVERE 基本用法 1
知识点: 数据库的存储结构分为逻辑存储结构和物理存储结构两种, 其中逻辑存储结构指是由那些信息组成,物理存储结构是指如何在磁盘上存储数据库文件的. 数据库文件由数据文件和事务日志文件组成,一个数据库至 ...
- Nginx 503错误总结
nginx 503错误(Service Temporarily Unavailable 服务暂时不可用): 503是一种HTTP状态码,由于临时的服务器维护或者过载,服务器当前无法处理请求.这个状况 ...
- Class.forName之坑
今天遇到个问题 找不到类,最后发现 Class.forName中要完整的类名
- jQuery实现18位身份证输入隔位添加空格及格式验证
说明:jQuery实现身份证输入添加空格,表单验证身份证输入,并且输入时前6位添加一个空格,中间8位后添加一个空格,及身份证格式验证 参考:基于jquery实现的银行卡号每隔4位自动插入空格的实现代码 ...
- Java BeanUtils 组件 使用
1. BeanUtils组件 1.1 简介 程序中对javabean的操作很频繁, 所以apache提供了一套开源的api,方便对javabean的操作!即BeanUtils组件. BeanUtils ...
- Android菜单(动画菜单、360波纹菜单)
Android菜单(动画菜单.360波纹菜单) 前言:Android菜单常用集合:FragmentTabHost系统菜单.上移式菜单.360波纹菜单.展开式菜单.详解注释,可直接拿来用! 效果: ...
- Spark Worker原理和源码剖析解密:Worker工作流程图、Worker启动Driver源码解密、Worker启动Executor源码解密等
本课主题 Spark Worker 原理 Worker 启动 Driver 源码鉴赏 Worker 启动 Executor 源码鉴赏 Worker 与 Master 的交互关系 Spark Worke ...
- linux误删文件导致系统无法启动
因虚拟机RedHat误删了/etc/inittab文件导致系统无法启动启动系统提示enter runlevel尝试输入0-5都不好使.因为实验环境直接忽略了错误,重新搭建了虚拟机. 如果想尝试修复,可 ...