이 문제에서는 두 개의 정수 x와 y가 주어집니다. 우리의 작업은 0(Log y)의 시간 복잡도에서 작업을 완료하는 반복적인 접근 방식을 사용하여 pow(x,y)와 동일한 함수를 만드는 것입니다.
문제를 이해하기 위해 몇 가지 예를 들어보겠습니다.
입력
x = 7 , y = 3
출력
343
pow(x,y)의 반복 함수는 x를 곱한 y의 홀수 값에 대한 결과를 반복 및 업데이트하고 모든 반복에서 x를 x2로 업데이트합니다.
솔루션 구현을 보여주는 프로그램
예시
#include <iostream> using namespace std; void calcPower(int x, unsigned int y) { int result = 1; while (y > 0) { if (y & 1) result *= x; y = y >> 1; x = x * x; } cout<<result; } int main() { int x = 7; unsigned int y = 3; cout<<x<<" raised to "<<y<<" is "; calcPower(x,y); return 0; }
출력
raised to 3 is 343