202. 쾌락 수난이도 단순HashSet
1425 단어 힘 써 문 제 를 풀다.
난이도 가 간단 하 다
하나의 알고리즘 을 만들어 서 하나의 수 를 판단 하 다.
n
즐 거 운 숫자 아니 야?'즐거움 수' 는 하나의 정수 에 대해 매번 이 수 를 모든 위치 에 있 는 숫자의 제곱 으로 바 꾼 다음 에 이 과정 을 이 수가 1 로 변 할 때 까지 반복 할 수도 있다 고 정의 한다. 무한 순환 그러나 하나 도 변 하지 않 았 다.하면, 만약, 만약... 되다 1. 그러면 이 숫자 는 즐거움 의 숫자 입 니 다.
하면, 만약, 만약...
n
즐 거 운 숫자 면 돌아 갑 니 다. True
;아니오 False
。 예시:
:19
:true
:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
해법 1:
class Solution {
// 1: HashSet , ,
public boolean isHappy(int n) {
//
if (n == 1) {
return true;
}
// HashSet
Set hashSet = new HashSet<>();
// hashSet n,
while (!hashSet.contains(n)) {
hashSet.add(n);
// n,
n = caculate(n);
}
// , ,n 1,
return n == 1;
}
private int caculate(int n) {
// 2019 = 9*9 + 1*1 + 0*0 + 2*2
int tmp = 0;
while (n > 0) {
//
int lastDigit = n % 10;
tmp = tmp + lastDigit * lastDigit;
//
n = n / 10;
}
return tmp;
}
}