HashSet
- 定义
C++:set
Java:HashSet
- 创建与其基本操作
创建:
HashSet hs=new HashSet<Integer>();
基本操作:
1. boolean add(Object)
// 如果此 set 中尚未包含指定元素,则添加指定元素。
2. boolean remove(object)
// 如果指定元素存在于此 set 中,则将其移除。
3. int size()
4. void clear()
5. boolean isEmpty()
6. boolean contain(object)
例题:HIHOCODER 1370 : 快乐数字
链接:https://hihocoder.com/problemset/problem/1370
描述
判断一个正整数是否是快乐数字?
如果一个数字能够通过有限次快乐变换成为1,则是快乐数字。
快乐变换是对一个数字的每一位的平方数求和。
例如:
对于68
68 => 62+82= 100
100 => 12 + 02 + 02 = 1
因此68是快乐数字
import java.util.*;
import java.io.*;
public class Main {
static int caculate(int x) {
int res=0,tmp;
while(x>0) {
tmp=x%10;
x/=10;
res+=tmp*tmp;
}
return res;
}
public static void main(String[] args) {
Scanner sc = new Scanner(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
HashSet<Integer>hs=new HashSet<Integer>();
while(true) {
int n=sc.nextInt();
if(n==-1) break;
hs.clear();
boolean flag=false;
while(!hs.contains(n)) {
hs.add(n);
if(n==1) {
flag=true;
break;
}
n=caculate(n);
}
out.println(flag);
out.flush();
}
}
}