[일반] 자신보다 큰 2의 제곱수 중 가장 작은 걸 빨리 구하는 법 있어?
익명(182.220)
2022-08-02 18:08
추천 0
댓글 14
다른 게시글
-
코포 옛날에는 군대 계급이었구나 [3][일반] 익명(14.63) | 22.08.02추천 3
-
코드포스 시간 억까가 심해서 못 하겠음... [10][일반] 익명(223.39) | 22.08.02추천 0
-
아 결국 D나가리됐네[일반] 익명(211.234) | 22.08.02추천 0
-
내 지인의 지인이 코드포스 오렌지라는데 [17][일반] 익명(39.7) | 22.08.02추천 0
-
전에도 말했지만 디씨에 유독 고자질쟁이들이 많이옴 [2][일반] 익명(39.7) | 22.08.02추천 2
-
어제 B 실시간으로 핵당했다 [6][일반] 익명(1.216) | 22.08.02추천 0
-
ps 시작한지 별로 안된 뉴비 궁금한 점 [3][질문] 00(116.34) | 22.08.02추천 0
-
회사 코데문제인데 어디가 틀렸는지 모르겠어요 (파이썬) [2][질문] 익명(221.151) | 22.08.02추천 0
-
PS 처음인데 코포 레이팅은 대회로만 올릴 수 있나요? [7][일반] 익명(183.102) | 22.08.02추천 0
-
코포 vs 앳코더 뭐로 할까요 [3][일반] 익명(121.184) | 22.08.02추천 0
일단 생각해본건 그냥 while문으로 2 계속 곱하는건데 너무 무지성인거 같아서 물어봄
전혀 무지성 아님 그거보다 간단하게 하려면 비트연산 관련함수 써야하는데 몰라도 아무문제 없음 - dc App
그거 맞지 않나
int max보다 작은 2의 거듭제곱 30개 좀 넘음. 물론 더 빨리 구할 방법 찾으면 꽤 있겠지만.
? 다이아문제에서도 저거할려면 걍 while문씀
1 << (31 - __builtin_clz(value))
좀 고쳐서 써봐
1 << (32 - __builtin_clz(x))
맞나보노ㅋㅋ 고마워요
bitset치환해서 length+1정도?
이분탐색으로 구하면 로그 하나 더 씌울 수 있긴함
코드 구경해보면 윗분이 쓰신 31 - clz 쓰던데
2**(int(log2(n))+1)
가장 큰 bit 구한다음에 <<1 하면됨