인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-N

1-n 홀수의 경우가 잘 이해가 되지 않습니다.

작성

·

268

0

if (b % 2) ret = (ret * a) % c;

홀수의 경우 a를 한번 더 곱해서 값을 return하게 되면

(a^b * a^b * a)^2 % c 하는 경우가 생기는 것 같은데 적상적으로 작동하는 이유가 궁금합니다

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 강일님 ㅎㅎ

홀수의 경우 a를 한번 더 곱해서 값을 return하게 되면

>> 이 경우에 예를 들어 b 가 5라고 할게요. b

그러면... b를 2로 나누게 되고..

a^2 *

a^2 *

a

가 되지 않을까요?

그리고...

a^ 2는 다시 2로 나눠지게 되서

a * a이런식이 되겠죠( 모듈러 제외)

그러한 재귀가 끝난후 a를 마지막에 한번 더 곱하는 것이구요.

 

정상적으로 작동하는 이유가 궁금합니다

>> 혹시 어떤 점이 정상적이지 않은지 말씀 부탁드립니다.

 

감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기