auto-generated entry for Happy Number. the solution files are available below.
solution files
- C++
happy-number/synced-solution.cpp - Python
happy-number/synced-solution.py - TypeScript
happy-number/synced-solution.ts
Collected C++, Python, TypeScript solutions for happy number. Add a dedicated write-up later if you want deeper notes.
auto-generated entry for Happy Number. the solution files are available below.
happy-number/synced-solution.cpphappy-number/synced-solution.pyhappy-number/synced-solution.tsdef isHappy(n: int) -> bool:
def get_next(number):
total_sum = class="syntax-number">0
while number > class="syntax-number">0:
digit = number % class="syntax-number">10
total_sum += digit * digit
number class=class="syntax-string">"syntax-comment">//= class="syntax-number">10
return total_sum
seen = set()
while n != class="syntax-number">1 and n not in seen:
seen.add(n)
n = get_next(n)
return n == class="syntax-number">1
class Solution {
public:
bool isHappy(int n) {
unordered_set<int> seen;
while (n != class="syntax-number">1 && seen.find(n) == seen.end()) {
seen.insert(n);
n = getNext(n);
}
return n == class="syntax-number">1;
}
private:
int getNext(int n) {
int totalSum = class="syntax-number">0;
while (n > class="syntax-number">0) {
int digit = n % class="syntax-number">10;
totalSum += digit * digit;
n /= class="syntax-number">10;
}
return totalSum;
}
};
function isHappy(n: number): boolean {
const getNext = (num: number): number => {
let totalSum = class="syntax-number">0;
while (num > class="syntax-number">0) {
const digit = num % class="syntax-number">10;
totalSum += digit * digit;
num = Math.floor(num / class="syntax-number">10);
}
return totalSum;
};
const seen = new Set<number>();
while (n !== class="syntax-number">1 && !seen.has(n)) {
seen.add(n);
n = getNext(n);
}
return n === class="syntax-number">1;
}