class Solution { public: boolisHappy(int n){ int m = n; map<int, int> sums; int sum = 0; while(sums[sum] == 0) { sums[sum] = 1; sum = 0; while(m) { int r = m % 10; sum += r * r; m = m / 10; } if(sum == 1) { returntrue; } m = sum; } returnfalse; } };
class Solution { public: boolisHappy(int n){ int slow = calDigits(n); int fast = calDigits(slow); while(slow != 1 && slow != fast) { slow = calDigits(slow); fast = calDigits(fast); fast = calDigits(fast); } return slow == 1; } private: intcalDigits(int m){ int sum = 0; while(m) { int r = m % 10; sum += r * r; m = m / 10; } return sum; } };