寫一個算法來判斷一個數(shù)是不是"快樂數(shù)"。
一個數(shù)是不是快樂是這么定義的:對于一個正整數(shù),每一次將該數(shù)替換為他每個位置上的數(shù)字的平方和憨攒,然后重復(fù)這個過程直到這個數(shù)變?yōu)?世杀,或是無限循環(huán)但始終變不到1。如果可以變?yōu)?肝集,那么這個數(shù)就是快樂數(shù)瞻坝。
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
int sum = n;
while(true)
{
sum = numSum(sum);
if(sum == 4)
{
break;
}
if(sum == 1)
{
return true;
}
}
return false;
}
int numSum(int n)
{
int sum = 0;
int x;
while(n != 0)
{
x = n % 10;
n = n /10;
sum += x * x;
}
return sum;
}
};