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

재귀 함수를 사용하여 x 거듭제곱 n의 값을 생성하는 C 프로그램

<시간/>

문제

x n 의 값을 계산합니다. , 여기서 x와 n은 모두 런타임에 사용자가 제공한 입력입니다.

해결책

C 프로그래밍 언어에서 재귀 함수를 사용하여 x 거듭제곱 n의 값을 생성하는 솔루션은 다음과 같습니다. -

x n 을 찾는 논리 아래에 언급되어 있습니다 -

//Calling function:
Xpow=power(x,n);
//Called function:
if (n==1)
   return(x);
else if ( n%2 == 0)
   return (pow(power(x,n/2),2)); /*if n is even*/
else
   return (x*power(x, n-1));

알고리즘

재귀 함수를 사용하여 x 거듭제곱 n의 값을 생성하려면 아래 주어진 알고리즘을 참조하십시오.

1단계 − long int 변수 읽기

2단계 - 함수 프로토타입 선언

3단계 − 호출 기능

Xpown=power(x,n) goto step 5

4단계 − xpown 인쇄

5단계 − 호출된 함수

5.1단계 - if (n==1)

5.1.1단계 - 리턴(x)

5.2단계 - 그렇지 않으면 (n%2 ==0)

5.2.1단계 - 반환 (pow(power(x,n/2),2)); /*n이 짝수인 경우*/

5.3단계 - 기타

5.3.1단계 - 반환 (x*power(x, n-1)); /* n이 홀수인 경우*/

프로그램

다음은 재귀 함수를 사용하여 x 거듭제곱 n의 값을 생성하는 C 프로그램입니다. -

#include <stdio.h>
#include <math.h>
void main(){
   long int x, n, xpown;
   long int power(int x, int n);
   printf("Enter the values of X and N: \n");
   scanf("%ld %ld", &x, &n);
   xpown = power (x, n);
   printf("X to the power N = %ld\n",xpown);
}
/*Recursive function to computer the X to power N*/
long int power(int x, int n){
   if (n==1)
      return(x);
   else if ( n%2 == 0)
      return (pow(power(x,n/2),2)); /*if n is even*/
   else
      return (x*power(x, n-1)); /* if n is odd*/
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

Enter the values of X and N:
5 4
X to the power N = 625