hihocoder:#1370 快乐数字
来源:互联网 发布:java applet程序 编辑:程序博客网 时间:2024/05/16 06:15
- 样例输入
68-1
- 样例输出
true
描述
判断一个正整数是否是快乐数字?
如果一个数字能够通过有限次快乐变换成为1,则是快乐数字。
快乐变换是对一个数字的每一位的平方数求和。
例如:
对于68
68 => 62+82= 100
100 => 12 + 02 + 02 = 1
因此68是快乐数字
输入
每一行输入一个整数,代表n;如果n为-1,表示输入结束。(n <= 100000000)
输出
针对每组数据,输出是否是快乐数字 true/false
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题解:
这个题目利用hashset 的内部不能有相同num就可以轻松解决,源代码
import java.util.*;class HappyNum {boolean isHappay(int num){HashSet<Integer> cache= new HashSet<Integer>();while(cache.add(num) && num!= 1){num= Result(num);}return num==1? true:false;}int Result(int num){int result= 0;while(num!= 0){result+= (num%10)*(num%10);num/= 10;}return result;}}public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner s= new Scanner(System.in);int num= s.nextInt();HappyNum happy= new HappyNum();while(num!= -1){if(happy.isHappay(num))System.out.println("true");elseSystem.out.println("false");num= s.nextInt();}}}---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
这是第一种解法,但是对于每一次的输入都会有重复计算的部分,题目给出的最大数字为10位也就是最大result结果不过 9^2+10=810,这样就可以制作一个 Hashmap将每次计算的result存起来并且赋一个boolean的值这样就会很快找到结果,这里不再累述
- hihocoder:#1370 快乐数字
- hihocoder:数字三角形
- hihocoder--数字三角形
- hihoCoder 1169 猜数字
- hihocoder 1169 猜数字
- hihoCoder - 1037 - 数字三角形
- hihoCoder 1037 数字三角形
- hihoCoder 1037 数字三角形
- hihocoder -#1037 : 数字三角形
- [HihoCoder]#1037 : 数字三角形
- 数字三角形--hihocoder(DP)
- hihocoder #1037 : 数字三角形
- hihocoder 1037 数字三角形
- hihoCoder #1037 数字三角形
- hihocoder:#1520 : 古老数字
- hihocoder#1037之数字三角形
- hihoCoder - 1037 - 数字三角形 (动态规划)
- hihoCoder-随机产生数字并排序
- Eclipse Java注释模板设置详解
- Android开机过程简介
- repr,str,和''
- hdu 2064 汉诺塔III
- Java入门第三季-3.Java中常用类
- hihocoder:#1370 快乐数字
- iOS开发至今一年
- 构建根文件系统
- android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
- Mac Eclipse下内存不足导致无响应解决方案
- Android studio drawable-hdpi和mipmap-hdpi的区别
- spring中文件上传与下载
- Maven的主要功能
- 如何布局您的PC站和移动站,并表达两者之间内容的对应关系