快乐数

来源:互联网 发布:template.js helper 编辑:程序博客网 时间:2024/06/05 02:31
问题描述:

写一个算法来判断一个数是不是"快乐数"。

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




样例:

19 就是一个快乐数。

1^2 + 9^2 = 828^2 + 2^2 = 686^2 + 8^2 = 1001^2 + 0^2 + 0^2 = 1

解题思路:


这个题得找规律,因为进入死循环是没法判断的,就只有找到,出现什么的时候才会进入死循环就可以判断了。

代码:

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        string a;int j=0;        while(1){        a=to_string(n);        n=0;        for(int i=0;i<a.size();i++) {        n=n+(a[i]-'0')*(a[i]-'0');        }        if(n==4) break;        if(n==1)break;        }         if(n==1) return 1;         else if(n==4)return 0;    }};




感想:

原创粉丝点击