Q1:- Happy Number
- Write an algorithm to determine if a number
n
is happy or not.
Happy Number
A Happy Number is a special number with these steps:
Start with any positive number.
Take each digit of the number, square it (multiply it by itself), and add all those squares together to get a new number.
Repeat this process with the new number.
If after repeating this process many times, you get the number 1, then the original number is called a Happy Number.
If you never get 1 and keep seeing the same numbers again and again, then the number is not happy (sometimes called sad).
Example
Start with 7:
- \(7^2 = 49\)
- \(4^2 + 9^2 = 16 + 81 = 97\)
- \(9^2 + 7^2 = 81 + 49 = 130\)
- \(1^2 + 3^2 + 0^2 = 1 + 9 + 0 = 10\)
- \(1^2 + 0^2 = 1 + 0 = 1\)
/**
* @param {number} n
* @return {boolean}
*/
var isHappy = function(n, seen = new Set()) {
if (n === 1) return true;
if (n < 0 || seen.has(n)) return false;
seen.add(n);
let array_Of_Each_Char = String(n).split('');
let sum = 0;
for (let i = 0; i < array_Of_Each_Char.length; i++) {
sum += Number(array_Of_Each_Char[i]) * Number(array_Of_Each_Char[i]);
}
n = Math.floor(sum);
console.log(n);
// ✅ Return the recursive call result
return isHappy(n, seen);
};
// ✅ Test cases
console.log(isHappy(7)); // true
console.log(isHappy(2)); // false
console.log(isHappy(19)); // true
console.log(isHappy(4)); // false
Top comments (0)