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