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