快乐数
来源:互联网 发布:看本子专业软件 编辑:程序博客网 时间:2024/06/05 09:26
写一个算法来判断一个数是不是”快乐数”。
一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。
样例
19 就是一个快乐数。
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
//一个不是【快乐数】的数字在进行每个位置上的数字平方和计算时会得到4这个值int power_sum(int n){ int sum = 0; while (n){ sum += pow(n % 10, 2); n /= 10; } return sum;}bool isHappy(int n) { if (n == 0)return false; int sum = power_sum(n); while (sum != 1){ sum = power_sum(sum); if (sum == 4)return false; } if (sum == 1)return true; else return false;}
思路2:也可以由另外一种做法,因为会出现无限循环,则肯定会产生重复的结果,用一个set记录出现的结果,出现重复,则判定不是欢乐数
int power_sum(int n){ int sum = 0; while (n){ sum += pow(n % 10, 2); n /= 10; } return sum;}bool isHappy(int n) { set<int> data; while (true){ n = power_sum(n); if (data.count(n))return false; else data.insert(n); if (n == 1)return true; } return false;}
阅读全文
0 0
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- LintCode-简单-快乐数
- LintCode-快乐数
- LintCode:快乐数
- 快乐数问题
- Webmagic 爬虫之通过cookie进行页面登录
- QT显示图片(二)
- git push时提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支
- perl 播放windows文件
- springmvc前端控制器中的配置项loadonstartup的作用
- 快乐数
- PAT 1069 微博转发抽奖
- 区块链技术概述
- PAT (Advanced Level) Practise 1118 Birds in Forest (25)
- 浅析angular,react,vue.js jQuery使用区别
- Android studio 创建本地文件时没有权限的怪现象
- idea javaweb项目导入标签库
- LeetCode 62. Unique Paths
- HDU 5412 CRB and Queries 整体二分