재귀 부분이 이해가 되지 않습니다.
436
작성한 질문수 9
```
ll go(ll a, ll b){
if(b == 1) return a % c;
ll _c = go(a, b / 2);
_c = (_c * _c) % c;
if(b % 2)_c = (_c * a)% c;
return _c;
}
```
해당 go 함수에서 인자, a, b 를
a 는 숫자 로, b 는 지수로 생각했습니다.
그래서 지수가 1 인 경우 a % c 를 통해 반환하고
`ll _c = go(a, b /2)` 구문과 그 밑은
2^10 == 2^5 * 2^5 이므로 해당 과정을 수행한다고 생각합니다.
근데 (여기서 질문)
```
if(b % 2) {
_c = (_c * a)% c;
}
```
- 지수(b)가 홀 수 인 경우 해당 작업이 왜 필요한지 이해가 되지 않습니다.
감사합니다.
답변 1
2
자 예를 들어 5번 곱한다고 해보죠. 이를 2번짜리 2개와 1번짜리 1개로 나눌 수 있겠죠?
이 때 1번짜리 1개를 처리하는데 홀수인 경우로 따로 if문으로 빼서 하는 작업이 필요한겁니다.
4번 곱한다고 했을 때 2번 2번 딱 떨어지지만 5번인 경우 그렇게 되지가 않거든요.
감사합니다.
강사 큰돌 올림.
1-E질문입니다!
0
517
2
3-L 틀린 부분 피드백 부탁드립니다.
0
818
2
1-A문제 순열재귀함수 질문입니다.
0
381
1
1-A 일곱난쟁이문제입니다
0
454
1
문제 풀 때 방향성에 대해
0
798
1
맥에서 vs code로 실행 관련 질문입니다
0
522
1
17071번 메모리 초과
0
386
1
1-C질문입니다!
0
418
2
2-B BFS 시간초과질문
0
629
2
1-O 13번 라인
0
440
1
6-J 놀이공원 문제 질문
0
380
1
구현관련 질문
0
482
1
강의 교안
0
319
1
실력을 더 올리고나서 강의를 보는 것이 맞을까요?
0
545
1
안녕하세요! 재귀함수에 관해서 질문드립니다
0
535
1
1-K
0
473
2
3-G번 질문있습니다.
1
473
3
3-C 실행 시간 질문드립니다.
0
493
1
4-A 문제 풀이 질문있습니다.
0
590
2
비트마스킹 연산자 "1의 보수" 영문 표기법
0
435
1
격자탐색 문제에서 BFS 시간복잡도 질문드립니다.
0
334
1
3-O go 함수 질문 드립니다.
1
446
2
4-A 출력 질문
0
303
1
1주차 1-O 질문드립니다
0
255
1





