lsc4719   8년 전

ll q;

scanf("%lld", &q);

while (!(q&1)) q>>1;

위와 같은 코드에서 문제가 생깁니다.

while(q%2==0) q/=2;로 수정하면 괜찮습니다.

long long으로 shift 연산을 하면 어떤 일이 일어나는건가요?

저번에도 한번 long long 비트연산때문에 고통받은적이 있었던 것 같은...

h0ngjun7   8년 전

1 뒤에 LL을 붙여서 1LL하면 괜찮았던 것 같은데...

lsc4719   8년 전

@hongjun7 그렇네요.. q>>1에서 =을 빼먹어서 그런거였어요. 감사합니다.

yukariko   8년 전

이렇게 안하신거 아닌지 ㄷㄷ

yukariko   8년 전

늦었네요

댓글을 작성하려면 로그인해야 합니다.