Java集合之HashSet

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();
		}
	}
}
posted @ 2017-10-12 19:02  江南何采莲  阅读(267)  评论(0编辑  收藏  举报