Finish challenge Happy Number

This commit is contained in:
ackermanncedi 2024-11-25 14:46:34 +00:00
parent 12a2456b59
commit 2e26a9d667
3 changed files with 46 additions and 0 deletions

View file

@ -0,0 +1,11 @@
load("@rules_java//java:defs.bzl", "java_binary")
package(default_visibility = ["//visibility:public"])
java_binary(
name = "happyNumber",
main_class = "cediackermann.challenges.happyNumber.Main",
srcs = glob(["*.java"]),
deps = [
],
)

View file

@ -0,0 +1,8 @@
package cediackermann.challenges.happyNumber;
public class Main {
public static void main(String[] args) {
Solution sol = new Solution();
System.out.println(sol.isHappy(2));
}
}

View file

@ -0,0 +1,27 @@
package cediackermann.challenges.happyNumber;
import java.util.HashSet;
import java.util.Set;
public class Solution {
public boolean isHappy(int n) {
Set<Integer> seen = new HashSet<>();
while (n != 1 && !seen.contains(n)) {
seen.add(n);
n = getNextGen(n);
}
return n == 1;
}
private int getNextGen(int n) {
int nextGen = 0;
while (n > 0) {
int digit = n % 10;
nextGen += digit * digit;
n /= 10;
}
return nextGen;
}
}