美文网首页算法实习生
find the happy numeber

find the happy numeber

作者: STACK_ZHAO | 来源:发表于2019-10-13 10:15 被阅读0次

题目描述:

编写一个算法来判断一个数是不是“快乐数”。

一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。

示例:

输入: 19
输出: true
解释:
1^2 +9^2 = 82
8^2 +2^2= 68
6^2 +8^2 = 100
1^2 +0^2 + 0^2 = 1

题目分析

主要思路是循环计算每一位的平方和相加,在有限次的循环下,看是否得出1来,主要问题是如何讲一个多位数分成1位一位的,很简单的方法是对10的n次方取余,然后取出每一位数的值,但是这样比较麻烦,所以主要的方法是将多位数转化为字符,然后在取出字符中的每一位,进而进行运算

c++代码

class Solution {
public:
    bool isHappy(int n) {
        string  str;
        int tmp = n;
        for(int i=0;i<6;i++)//i取6其实是有点取巧,6轮以后如果还没有收敛,那么这个数就不是快乐数,当然你只要是大于6的都可以,不过占的空间可能会更多而已
        {
            str = to_string(tmp);
            tmp = 0;
            for(auto c : str)
            {
                tmp += (c-'0') * (c-'0');
            }
            if(tmp == 1)
                return true;
        }
        return false;
    }
};

相关文章

  • find the happy numeber

    题目描述: 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它...

  • 2019-01-10

    Always find time for the things that make you feel happy ...

  • 每日英汉对照(12.13)

    1 We can find a happy medium. 得找个折中的法子。 2 Time well tell....

  • Week 27 0918--0924

    question 1:find happy number 答案1: 30% 循环将数的各位平方和相加,假如这个和为...

  • 时间对象、引用类型

    一、基础类型有哪些?复杂类型有哪些?有什么特征? 1.基础类型:Numeber、Boolean、Null、Unde...

  • JavaSprict基础3

    NaN的认识 Not a Numeber NaN属于数值类型,是用来记录一个特殊的数值类型的字符,但是表示不是一个...

  • 「前端面试题大全01」

    一.JS中的Numeber类型 1.问题一:在四则运算中存在精度丢失的问题 (1)比如:0.1 + 0.2 //结...

  • 08

    If You're Happy If you’re happy happy happy (Smile and pu...

  • 金裕制罐大牌生日会来啦!

    “Happy birthday to you,Happy birthday to you,Happy birthd...

  • 报复

    “happy birthday to you,happy birthday to you, happy birth...

网友评论

    本文标题:find the happy numeber

    本文链接:https://www.haomeiwen.com/subject/woncmctx.html