문제
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