快乐数-LintCode
来源:互联网 发布:优化 人才发展环境 编辑:程序博客网 时间:2024/06/04 20:06
写一个算法来判断一个数是不是”快乐数”。
一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。
样例:
19 就是一个快乐数。
1^2 + 9^2 = 828^2 + 2^2 = 686^2 + 8^2 = 1001^2 + 0^2 + 0^2 = 1
思路:
将不满足条件的数存入map中,若出现循环(map中存在当前数),则返回false;
如果当前数为1,返回true;
#ifndef C488_H#define C488_H#include<iostream>#include<map>using namespace std;class Solution {public: /* * @param n: An integer * @return: true if this is a happy number or false */ bool isHappy(int n) { // write your code here if (n <= 0) return false; map<int, int> m; return isHappyRecur(n, m); } bool isHappyRecur(int n, map<int, int> &m) { if (m.find(n) != m.end()) return false; m[n] = 1; int num = 0; while (n != 0) { int rem = n % 10; n = n / 10; num += rem*rem; } if (num == 1) return true; else { return isHappyRecur(num,m); } }};#endif
阅读全文
0 0
- LintCode-简单-快乐数
- LintCode-快乐数
- LintCode:快乐数
- LintCode之快乐数
- lintcode,快乐数
- LintCode 快乐数
- lintcode--快乐数
- LintCode之快乐数
- lintcode:快乐数
- LintCode 488快乐数
- [Lintcode] #488 快乐数
- 快乐数-LintCode
- [LintCode 488] 快乐数 (Python)
- Lintcode快乐数问题解析
- lintcode python代码 488 快乐数
- 快乐数
- 快乐数
- 快乐数
- 最常见到的runtime exception 异常
- 翻转链表 给定一个链表个一个整数k 将从右边k个翻转到前边
- HTML入门8
- 轻松掌握正则表达式(2)
- Java中级
- 快乐数-LintCode
- 【Linux】linux内核原子操作的实现
- 1701H2 王建瑜 连续第十天
- 吐槽csdn恶心人的地方
- Java内部类详解
- TCP/IP协议三次握手与四次挥手流程解析
- zookeeper客户端创建节点数据
- 目录结构和文件类型
- 游戏服务器开发的基本体系与服务器端开发的一些建议