Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 a의 b제곱 값에서 오른쪽부터 k번째 자릿수 구하기

이 튜토리얼에서는 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++를 활용해 거듭제곱 값의 특정 자릿수를 추출하는 방법을 알아보았습니다. 로직 자체는 단순하지만, 나머지 연산(%)과 나눗셈(/)을 활용해 자릿수를 다루는 기본적인 패턴을 익히기에 좋은 예제입니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.