《双指针篇》---快乐数
题目传送门
1.创建一个bitsum函数用于得到这个数每位的平方和。
2.令快指针等于bitsum(n)
3.慢指针等于n。
逐步令
fast = bitSum(bitSum(fast));
slow = bitSum(slow);
若最后fast等于slow,则且等于1.则return true。
否则return false。
class Solution {public boolean isHappy(int n) {int fast = bitSum(n),slow = n;while (fast != slow){fast = bitSum(bitSum(fast));slow = bitSum(slow);}return fast == 1;}public int bitSum(int n){int sum = 0;while (n != 0){int temp = n % 10;sum += temp*temp;n /= 10;}return sum;}
}