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 elementse1ande2such
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 就是它们的朋友证号.给定 ...
随机推荐
- 基于easyUI实现系统日志管理
此文章是基于 EasyUI+Knockout实现经典表单的查看.编辑 一. 相关文件介绍 1. log.jsp:系统日志管理界面 <!DOCTYPE html PUBLIC "-//W ...
- 1.JDBC基础
JDBC全称Java Database Connectivity,即Java数据库连接.(以下以MySQL为例,使用MySQL语句) Sun公司提供了标准JDBC API接口,没有实现具体类.各个数据 ...
- mysql(什么是关系型数据库?)
关系型数据库:建立在关系模型上的数据库. 关系模型:当将日常生活中的实体(学生),和实体的属性(学生的学号,姓名)保存到数据库中,应该如何处理实体结构. 1.数据结构可以规定,同类数据,结构一致.就是 ...
- laravel上传到七牛图片插件
1.首先引入两个插件 2.在https://developer.qiniu.com/kodo/sdk/1241/php找到安装命令 在终端运行composer require qiniu/php-sd ...
- SPOJ2666 QTREE4
我是萌萌的传送门 我是另一个萌萌的传送门 一道树分治……简直恶心死了……我在调代码的时候只想说:我*************************************************…… ...
- Python-常用模块1
今天我们来看一看python中的常用的模块,内容有点多,我会分两天来更新这些知识 一.什么是模块 模块就是我们把装有特定功能的代码就行归类的结果,从代码编写的单位来看我们的程序,从小到大的顺序:一条代 ...
- 操作Hadoop集群
操作Hadoop集群 所有必要的配置完成后,将文件分发到所有机器上的HADOOP_CONF_DIR目录.这应该是所有机器上相同的目录. 一般来说,建议HDFS和YARN作为单独的用户运行.在大多数安装 ...
- Windows操作系统----锁住命令行窗口
第一步: 新建一个.txt文档,输入如下内容: @echo off echo. setlocal :checkpassword set /p password=请输入密码: if "%pas ...
- 安装、配置Jupyter Notebook快速入门教程
What? Why? How? ---安装 ---启动 ---关闭 ---保存 Markdown语法 Magic关键词 转换notebook--toHTML 创建幻灯片 运行代码 What? 文字化编 ...
- Tomcat启动报错java.net.AbstractPlainSocketImpl(java/net/AbstractPlainSocketImpl.java:178:-1)Struts在网络复杂情况下启动报错解决办法
SSH项目 在网络复杂的情况(具体规律未知)下,Tomcat启动时,报如下错误: [ERROR] 2014-08-12 14:52:58,484 [org.apache.struts2.dispatc ...