Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 성화봉송주자
- 성화봉송
- 외판원 순회
- 다음 API
- 인간이 그리는 무늬
- 안드로이드 스튜디오
- yolo
- 위상정렬
- 백트레킹
- 그리디 알고리즘
- 비트마스크
- MST
- 삼성 코딩테스트
- BOJ 2098
- Segment Tree
- 다이나믹 프로그래밍
- 언어의 온도
- 캘리그라피
- lower_bound
- upper_bound
- 창훈쓰다
- 다음 지도 api
- DP
- 평창동계올림픽
- BFS
- 생활코딩
- multiset
- 이분탐색
- 영어회화 100일의 기적
- boj
Archives
- Today
- Total
목록사소한 팁 (1)
Hoon222y
2의 거듭제곱인지를 O(1)에 알 수 있는 방법
12345if(n == n&-n) { printf("2의 거듭제곱!");}else{ printf("2의 거듭제곱 아님!");}cs +설명) 2의 거듭제곱은 어떤 한 비트만 켜져있을 것이다.n & -n 은 n에서 켜져있는 가장 아래의 비트만 켜진 수이다.그렇기 때문에 2개 이상이 켜져있다면 n & -n와는 절대 같아질 수 없는 것이다.그리고 n에 비트가 하나만 켜져있다면 n & -n 은 그 비트만 켜진 수가 되므로 같게되는것이다. 출처) http://sgc109.tistory.com/130잘보고 배웠당 ㅎㅎ
코딩/사소한 팁
2017. 5. 25. 14:35