Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương Trình Java Tính Lũy Thừa Sử Dụng Đệ Quy


Trong bài viết này, chúng ta sẽ tìm hiểu cách tính lũy thừa sử dụng đệ quy. Hàm đệ quy là hàm tự gọi chính nó nhiều lần cho đến khi điều kiện cụ thể được thỏa mãn.

Đệ quy là quá trình lặp lại các mục theo cách tự tương tự. Trong ngôn ngữ lập trình, nếu chương trình cho phép gọi hàm bên trong chính hàm đó, thì đó gọi là lời gọi đệ quy của hàm.

Nhiều ngôn ngữ lập trình triển khai đệ quy bằng ngăn xếp. Nói chung, khi một hàm (caller) gọi hàm khác (callee) hoặc chính nó làm callee, hàm caller chuyển quyền thực thi cho callee. Quá trình chuyển này cũng có thể liên quan đến việc truyền dữ liệu từ caller sang callee.

Dưới đây là minh họa:

Đầu vào

Giả sử đầu vào của chúng ta là:

Nhập số và lũy thừa: 2 và 5

Đầu ra

Đầu ra mong muốn sẽ là:

Kết quả của 2^5 là 32

Thuật Toán

Bước 1 - BẮT ĐẦU
Bước 2 - Khai báo ba biến nguyên my_power, my_input, result
Bước 3 - Đọc giá trị từ người dùng hoặc định nghĩa giá trị
Bước 4 - Hàm đệ quy 'getPower' được định nghĩa nhận hai số nguyên, trả về tích của giá trị đầu vào với chính nó 'my_power' lần
Bước 5 - Hàm được gọi đệ quy cho đến khi 'my_power' lớn hơn 0. Lưu kết quả
Bước 6 - Hiển thị kết quả
Bước 7 - DỪNG

Ví Dụ 1

Ở đây, đầu vào được nhập bởi người dùng dựa trên nhắc nhở. Bạn có thể thử ví dụ này trực tiếp trong công cụ coding ground của chúng tôi.

import java.util.Scanner;
public class Power {
    public static void main(String[] args) {
        int my_power, my_input, result;
        my_input = 2;
        my_power = 5;
        System.out.println("Các gói cần thiết đã được nhập");
        Scanner my_scanner = new Scanner(System.in);
        System.out.println("Đối tượng đọc đã được định nghĩa");
        System.out.print("Nhập số: ");
        my_input = my_scanner.nextInt();
        System.out.print("Nhập giá trị lũy thừa: ");
        my_power = my_scanner.nextInt();
        result = getPower(my_input, my_power);
        System.out.println("Kết quả của " + my_input + "^" + my_power + " là " + result);
    }
    public static int getPower(int my_input, int my_power) {
        if (my_power != 0) {
            return (my_input * getPower(my_input, my_power - 1));
        } else {
            return 1;
        }
    }
}

Đầu Ra

Các gói cần thiết đã được nhập
Đối tượng đọc đã được định nghĩa
Nhập số: 2
Nhập giá trị lũy thừa: 5
Kết quả của 2^5 là 32

Ví Dụ 2

Ở đây, số nguyên đã được định nghĩa trước, và giá trị của nó được truy cập và hiển thị trên bảng điều khiển.

public class Power {
    public static void main(String[] args) {
        int my_power, my_input, result;
        my_input = 2;
        my_power = 5;
        System.out.println("Số và lũy thừa được định nghĩa là " + my_input + " và " + my_power);
        result = getPower(my_input, my_power);
        System.out.println("Kết quả của " + my_input + "^" + my_power + " là " + result);
    }
    public static int getPower(int my_input, int my_power) {
        if (my_power != 0) {
            return (my_input * getPower(my_input, my_power - 1));
        } else {
            return 1;
        }
    }
}

Đầu Ra

Số và lũy thừa được định nghĩa là 2 và 5
Kết quả của 2^5 là 32