Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C để tạo ra giá trị của x lũy thừa n bằng cách sử dụng hàm đệ quy

Vấn đề

Tính giá trị của x n , trong đó x và n đều là đầu vào do người dùng cung cấp trong thời gian chạy

Giải pháp

Giải pháp để tạo ra giá trị của x lũy thừa n bằng cách sử dụng hàm đệ quy trong ngôn ngữ lập trình C như sau -

Logic để tìm x n được đề cập bên dưới -

//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));

Thuật toán

Tham khảo thuật toán đưa ra bên dưới để tạo ra giá trị của x lũy thừa n bằng cách sử dụng hàm đệ quy.

Bước 1 - Đọc các biến int dài

Bước 2 - Khai báo nguyên mẫu hàm

Bước 3 - Chức năng gọi

Xpown=power(x,n) goto step 5

Bước 4 - In xpown

Bước 5 - Chức năng được gọi

Bước 5.1 - if (n ==1)

Bước 5.1.1 - return (x)

Bước 5.2 - Khác nếu (n% 2 ==0)

Bước 5.2.1 - Return (pow (power (x, n / 2), 2)); / * nếu n chẵn * /

Bước 5.3 - Khác

Bước 5.3.1 - Return (x * lũy thừa (x, n-1)); / * nếu n lẻ * /

Chương trình

Sau đây là chương trình C để tạo giá trị của x lũy thừa n bằng cách sử dụng hàm đệ quy -

#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*/
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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