parameter k는 val 이라 var로 재선언해주어야 함least signed bit 즉 가장작은 켜진 비트를 찾기 위해서k & -k 비트연산을 사용했음. Integer.lowestOneBit(k) 써도 됨
오타쿠
도리도리 페페짤
k&-k 추
hacker's delight