Happy Number
2015-06-24 22:37
183 查看
Description:
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
Code:
PS:
16位整数:-32768到32767
32位整数中:-2147483648到2147 483 647
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
Code:
bool isHappy(int n) { /*这道题的核心问题在于怎么判断是否为死循环。可以考虑:如果重复出现一个数字则说明将陷入死循环 一个int型数据经计算后的最大值为9*9*10=810.因此有810个数据需要记录。 备注:刚开始,有想到这个思路,但是没有分析到一个int型数据经计算后的最大值为9*9*10=810,所需空间并没有想象中那么大。 */ int result = 0; int data[1000] = {0}; while (1) { result = 0; while (n) { result += (n%10)*(n%10); n = n/10; } if (result == 1) return true; else { if (data[result] == 1) return false; else data[result] = 1; } n = result; } }
PS:
16位整数:-32768到32767
32位整数中:-2147483648到2147 483 647
相关文章推荐
- opengl之vsh、fsh简易介绍+cocos2dx 3.0 shader 变灰
- CocoSourcesCS 4
- CocoSourcesCS 3
- CocoSourcesCS 2
- CocoSourcesCS 1
- cocos2dx3.6 弹出对话框的实现
- Android——ViewPager和内部view之间的事件分发及轮播图
- IOS OC声明变量在@interface括号中与使用@property的区别
- swift 泛型
- iOS开发系列--视图切换
- Android 强制横屏或竖屏注意事项及onConfigurationChanged的使用
- 通过编写一个YARN Application 来了解Hadoop YARN
- android中的/system/bin/input工具,input keyevent+key_...
- Android RecyclerView 使用详解
- 34.如何获取app(apk和ipa)中的资源
- 34.如何获取app(apk和ipa)中的资源
- android学习笔记(六)——数据库操作
- MTK android配置LCD背光和LED,调试方法
- Android 5.x Theme 与 ToolBar 详解
- android 屏幕宽高获取