Happy Number
EasyHash TableMathTwo Pointers
Solution
export function isHappy(n: number): boolean {
const getNextNum = (num: number) => {
let totalNum = 0;
while (0 < num) {
totalNum += (num % 10) ** 2;
num = Math.floor(num / 10);
}
return totalNum;
};
let num = n;
const cycled = new Set<number>([4, 16, 37, 58, 89, 145, 42, 20]);
while (num !== 1 && !cycled.has(num)) {
num = getNextNum(num);
}
return num === 1;
}