이 튜토리얼에서는 ab 값에서 오른쪽부터 세어 k번째에 해당하는 자릿수를 찾는 프로그램을 C++로 작성해 보겠습니다.
문제 자체는 비교적 간단한 편입니다. 핵심은 ab를 계산한 뒤, 일의 자리부터 차례대로 숫자를 추출하면서 원하는 위치의 자릿수를 찾아내는 것입니다. 그럼 해결 단계를 하나씩 살펴보겠습니다.
해결 접근 방법
- 숫자 a, b, k를 초기화합니다.
pow함수를 사용하여 ab 값을 계산합니다.- 거듭제곱 값이 0보다 크고 카운트가 k보다 작은 동안 반복하는 루프를 작성합니다.
- 거듭제곱 값에서 마지막 자릿수(일의 자리)를 추출합니다.
- 카운터를 1 증가시킵니다.
- 카운터와 k가 같은지 확인합니다.
- 같다면 해당 자릿수를 반환합니다.
- k번째 자릿수가 존재하지 않으면 -1을 반환합니다.
예제 코드
위 알고리즘을 실제 코드로 구현하면 다음과 같습니다.
#include <bits/stdc++.h>
using namespace std;
int getTheDigit(int a, int b, int k) {
int power = pow(a, b);
int count = 0;
while (power > 0 && count < k) {
int rem = power % 10;
count++;
if (count == k) {
return rem;
}
power /= 10;
}
return -1;
}
int main() {
int a = 5, b = 6;
int k = 3;
cout << getTheDigit(a, b, k) << endl;
return 0;
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
6
예제에서 a = 5, b = 6이므로 56 = 15625입니다. 이 숫자에서 오른쪽부터 세 번째 자릿수는 6이므로 프로그램이 올바르게 동작하는 것을 확인할 수 있습니다.
마무리
이번 튜토리얼에서는 C++를 활용해 거듭제곱 값의 특정 자릿수를 추출하는 방법을 알아보았습니다. 로직 자체는 단순하지만, 나머지 연산(%)과 나눗셈(/)을 활용해 자릿수를 다루는 기본적인 패턴을 익히기에 좋은 예제입니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.