leetcode| Happy Number
来源:互联网 发布:hg的gp03d石斛兰淘宝 编辑:程序博客网 时间:2024/06/11 19:42
Question from https://leetcode.com/problemset/algorithms/ 第202题
Write an algorithm to determine if a number is "happy".
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example: 19 is a happy number
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
Answer:
class Solution {
public:
bool isHappy(int n) {
int *hash = new int[1000];
for(int i=0;i<1000;i++){
hash[i] = 0;
}
int m = n;
bool flag = false;
while(true){
m=getSum(m);
if(m==1){
flag = true;
break;
}else if(hash[m]==1||m==n){
break;
}
hash[m] = 1;
}
return flag;
}
static int getSum(int n){
int sum = 0;
while(n>0){
int t = n%10;
sum += t*t;
n /= 10;
}
return sum;
}
};
public:
bool isHappy(int n) {
int *hash = new int[1000];
for(int i=0;i<1000;i++){
hash[i] = 0;
}
int m = n;
bool flag = false;
while(true){
m=getSum(m);
if(m==1){
flag = true;
break;
}else if(hash[m]==1||m==n){
break;
}
hash[m] = 1;
}
return flag;
}
static int getSum(int n){
int sum = 0;
while(n>0){
int t = n%10;
sum += t*t;
n /= 10;
}
return sum;
}
};
原文链接:http://blog.csdn.net/gotobar/article/details/45193515
不知为何C++里的HashTable,Set,Vector等用不了,说是不在可编译范围内,所以找到了这篇博客可以解决问题。
其余code:
- public class Solution {
- public boolean isHappy(int n) {
- if(n<=0) return false;
- long ln = n;
- Set<Long> set = new HashSet<Long>();
- while(ln<=Integer.MAX_VALUE) {
- if(set.contains(ln) ) return false; else set.add(ln);
- ln = digitSquare(ln);
- if(ln == 1) return true;
- }
- return false;
- }
- private long digitSquare(long ln) {
- long sum = 0;
- while(ln!=0) {
- sum += Math.pow(ln%10, 2);
- ln /= 10;
- }
- return sum;
- }
- }
总是会提示这个错误,不知为何。但代码的解法还是可以的。
原文链接:http://blog.csdn.net/xudli/article/details/45267247
0 0
- [leetcode] Happy Number
- leetcode: Happy Number
- [LeetCode] Happy Number
- [LeetCode]Happy Number
- LeetCode 202 Happy Number
- LeetCode OJ Happy Number
- [LeetCode]202.Happy Number
- LeetCode 202-Happy Number
- leetcode-202 Happy Number
- [LeetCode]Happy Number
- leetcode 202: Happy Number
- leetcode Happy Number
- [LeetCode 202]Happy Number
- LeetCode (24) Happy Number
- LeetCode Happy Number 题解
- [LeetCode] Happy Number
- leetcode 202 Happy Number
- LeetCode Happy Number
- matlab cell
- linux telnet 之 telnet: Unable to connect to remote host: Connection refused
- linux下TCP/socket编程实例
- 判断三极管是否可以放大交流信号的方法
- 发现数据库查询表空间使用率语句执行的很慢
- leetcode| Happy Number
- Windows 下使用 qrencode
- 浅谈java基本类型的封装类型与对象池的概念
- Android.mk的用法和基础
- android-数据持久化之SQlite数据库存储
- JAVA 堆栈 堆 方法区 静态区 final static 内存分配 详解
- VS2010中如何添加“依赖”、“库目录”、“包含目录‘’
- Android中基于HTTP的通信技术(5)Google开源库 使用 Volley 实现 JSON 字符串请求
- Servlet虚拟路径映射