(Math) Happy Number
23 Nov 2019 | algorithm programming leetcodeHappy Number란, 입력된 수의 자리수의 제곱해서 더함을 무한 반복했을 때 결과가 1이 나오면 Happy Number라고 한다.
자리수를 더한 값이 1이 아니라면 Set에 저장하고 Happy Number가 아니라고 저장한다. 그것을 반복하다 1이 결과값으로 나오면 Happy Number 라고 리턴한다.
import java.util.HashSet;
import java.util.Set;
class Solution {
Set<Integer> notHappys = new HashSet<>();
public boolean isHappy(int n) {
if(notHappys.contains(n)) {
return false;
}
int temp = n;
int result = 0;
while(true) {
result += (temp%10)*(temp%10);
if(temp/10 == 0) {
break;
}
temp = temp/10;
}
System.out.println(temp);
if(result == 1) {
return true;
} else {
notHappys.add(n);
}
return isHappy(result);
}
}