Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

숫자의 거듭제곱을 계산하는 C++ 프로그램

<시간/>

숫자의 거듭제곱은 x^y로 계산할 수 있습니다. 여기서 x는 숫자이고 y는 그 거듭제곱입니다.

예를 들어.

Let’s say, x = 2 and y = 10
   x^y =1024
   Here, x^y is 2^10

재귀 및 비재귀 프로그램을 사용하여 숫자의 거듭제곱을 계산할 수 있습니다. 각각 다음과 같이 주어진다.

비재귀 프로그램을 사용한 수의 거듭제곱

비재귀 프로그램을 사용하여 숫자의 거듭제곱을 구하는 프로그램은 다음과 같습니다. -

예시

#include<iostream>
using namespace std;
int power(int x, int y) {
   int i,power=1;
   if(y == 0)
   return 1;
   for(i=1;i<=y;i++)
   power=power*x;
   return power;
}
int main() {
   int x = 3;
   int y = 4;
   cout<<"x = "<<x<<endl;;
   cout<<"y = "<<y<<endl;
   cout<<"x^y = "<<power(x,y);
   return 0;
}
x = 3
y = 4
x^y = 81

위의 프로그램에서 power() 함수는 숫자의 거듭제곱을 계산하는 데 사용됩니다. 재귀적이지 않은 함수입니다. 함수에서 1에서 y까지 실행되는 for 루프가 사용됩니다. 루프를 반복할 때마다 x에 거듭제곱을 곱합니다.

따라서 x는 자체적으로 y번 곱해지고 그 결과는 거듭제곱에 저장됩니다. 이로 인해 x^y가 전원에 저장됩니다. 그런 다음 전원이 main() 함수에 반환됩니다.

다음 코드 스니펫은 이것을 보여줍니다 -

int power(int x, int y) {
   int i, power = 1;
   if(y==0)
   return 1;
   for(i=1;i<=y;i++)
   power = power*x;
   return power;
}

main()에서 x, y 및 x^y 값이 표시됩니다. 이것은 아래 주어진 코드 스니펫에 나와 있습니다 -

cout<<"x = "<<x<<endl;;
cout<<"y = "<<y<<endl;
cout<<"x^y = "<<power(x,y);

재귀 프로그램을 사용한 수의 거듭제곱

재귀 프로그램을 이용하여 수의 거듭제곱을 구하는 프로그램은 다음과 같습니다.

예시

#include<iostream>
using namespace std;
int power(int x, int y) {
   if (y == 0)
   return 1;
   else if (y%2 == 0)
   return power(x, y/2)*power(x, y/2);
   else
   return x*power(x, y/2)*power(x, y/2);
}
int main() {
   int x = 3;
   int y = 4;
   cout<<"x = "<<x<<endl;;
   cout<<"y = "<<y<<endl;
   cout<<"x^y = "<<power(x,y);
   return 0;
}

출력

x = 3
y = 4
x^y = 81

위의 프로그램에서 power()는 재귀 함수입니다. y의 값이 0이면 1을 반환합니다. y가 짝수이면 값 x와 y/2로 자신을 재귀적으로 호출하고 power(x, y/2)*power(x, y/2)를 반환합니다. y가 홀수이면 값 x 및 y/2로 자신을 재귀적으로 호출하고 x*power(x, y/2)*power(x, y/2)를 반환합니다. 다음 코드 스니펫에서 이를 확인할 수 있습니다.

int power(int x, int y) {
   if (y == 0)
   return 1;
   else if (y%2 == 0)
   return power(x, y/2)*power(x, y/2);
   else
   return x*power(x, y/2)*power(x, y/2);
}
를 반환합니다.

main()에서 x, y 및 x^y 값이 표시됩니다. 이는 아래에 제공된 코드 스니펫에 나와 있습니다.

cout<<"x = "<<x<<endl;;
cout<<"y = "<<y<<endl;
cout<<"x^y = "<<power(x,y);