Happy Number
2015-06-23 09:32
260 查看
题目描述:
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.
以前一直是按时间顺序做的,从这题开始按难易程度做。
我的解法:
简洁版:
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
以前一直是按时间顺序做的,从这题开始按难易程度做。
我的解法:
bool isHappy(int n) { if(n <= 0) return false; set<int> st; while (1) { int tmp = 0; while (n > 0) { tmp += (n % 10)*(n % 10); n /= 10; } if(tmp == 1) return true; else { if(st.find(tmp) != st.end()) return false; else st.insert(tmp); } n = tmp; } }
简洁版:
bool isHappy(int n) { if(n <= 0) return false; unordered_set<int> st; while (n != 1 && st.find(n) != st.end()) { st.insert(n); int tmp = 0; do { tmp += (n % 10) * (n % 10); } while ( (n /= 10) > 0); n = tmp; } return n == 1; }
相关文章推荐
- Android定位功能(二)
- java,android中的Math用法
- iOS(使用pch文件导入头文件方法)
- Objective-C编码规范:26个方面解决iOS开发问题
- android界面优化技巧
- Unity3D内容加密保护
- Java Service Wrapper2-构建自己的Wrapper应用
- 构建iOS交叉编译环境
- 基于Android的拍照上传程序开发
- 致创业者:APP已死 服务永生
- Java Service Wrapper1-简介与使用
- iOS开发笔记6:图片轮播及其无限循环效果
- Android Google Map API V2(显示地图)
- “自释放”在iOS开发中的应用
- 浅谈 MVP in Android
- iOS类的继承关系
- 浅谈 MVP in Android
- iOS view的frame和bounds之区别(位置和大小)
- Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
- Android学习16_采用SharedPerferences保持用户偏好设置参数