快乐数
来源:互联网 发布:java设计模式 百度云 编辑:程序博客网 时间:2024/06/05 06:03
快乐数
一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
要求输入一个数,判断它是否为快乐数
算法的思路很简单,第一步将数分解,第二部进行计算判断,也没有需要注意的细节。
vector<int> extraNum(int n){ int tmp = 0; vector<int> result; int div_num = int(pow(10, 7)); for (int i = 0; i < 8; i++) { tmp = n / div_num; n = n - tmp * div_num; result.push_back(tmp); div_num = div_num / 10; } return result;}int calPower(vector<int> result){ int sum = 0; for (size_t i = 0; i < result.size(); i++) { sum = sum + (result[i] * result[i]); } return sum;}bool isHappy(int n){ vector<int> each_num; int power = 0; int count = 0; each_num = extraNum(n); power = calPower(each_num); if (power == 1) { return true; } while (power != 1 && count < 20) { each_num = extraNum(power); power = calPower(each_num); count++; } if (power == 1) return true; return false; //each_num = extraNum(n);}
0 0
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- 快乐数
- LintCode-简单-快乐数
- LintCode-快乐数
- LintCode:快乐数
- 快乐数问题
- 24. Swap Nodes in Pairs
- 【Java基础】Java基础语法
- excel 提取特殊符号前后的字符
- Hadoop入门-1.配置部署启动(基于hadoop-2.7.3)
- Oracle Study--Oracle RAC CacheFusion(MindMap)
- 快乐数
- HTML框架建立知识点
- 使用 JAX-RS 简化 REST 应用开发 实例
- 【React Native开发】React Native 进阶之原生混合与数据通信开发详解-适配iOS开发(61)
- 【云解压】ZIP 文件格式分析-偏移计算和文件大小表示ZIP32 ZIP64
- 插入区间
- 开端-对现有知识结构和项目的梳理
- 判断日期是否合法的正则表达式
- 计算机网络原理整体剖析