Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java คำนวณยกกำลังด้วย Recursion (Power Calculation)


ในบทความนี้ เราจะทำความเข้าใจวิธี คำนวณเลขยกกำลัง (Power) ด้วย Recursion

หลักการ: aⁿ = a × aⁿ⁻¹ โดยมี Base Case: a⁰ = 1

ตัวอย่าง Input และ Output

Input:

Enter the number and its power 2 and 5

Output:

The result of 2^5 is 32

อัลกอริธึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศตัวแปร my_power, my_input, result
ขั้นตอนที่ 3 - อ่านค่าจากผู้ใช้ หรือกำหนดค่าเริ่มต้น
ขั้นตอนที่ 4 - สร้างฟังก์ชัน getPower แบบ recursive รับ base, exponent
ขั้นตอนที่ 5 - ถ้า exponent != 0 คืน base * getPower(base, exponent-1) มิฉะนั้นคืน 1
ขั้นตอนที่ 6 - เรียกฟังก์ชันและแสดงผล
ขั้นตอนที่ 7 - หยุด

ตัวอย่างที่ 1: รับค่าจากผู้ใช้

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("Required packages have been imported");
        Scanner my_scanner = new Scanner(System.in);
        System.out.println("A reader object has been defined");
        System.out.print("Enter the number : ");
        my_input = my_scanner.nextInt();
        System.out.print("Enter the power value : ");
        my_power = my_scanner.nextInt();
        result = getPower(my_input, my_power);
        System.out.println("The result of " + my_input + "^" + my_power + " is " + 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;
        }
    }
}

Output

Required packages have been imported
A reader object has been defined
Enter the number : 2
Enter the power value : 5
The result of 2^5 is 32

ตัวอย่างที่ 2: กำหนดค่าไว้ล่วงหน้า

public class Power {
    public static void main(String[] args) {
        int my_power, my_input, result;
        my_input = 2;
        my_power = 5;
        System.out.println("The number and its power is defined as " + my_input + " and " + my_power);
        result = getPower(my_input, my_power);
        System.out.println("The result of " + my_input + "^" + my_power + " is " + 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;
        }
    }
}

Output

The number and its power is defined as 2 and 5
The result of 2^5 is 32