ในบทความนี้ เราจะมาทำความเข้าใจวิธีการคำนวณกำลังโดยใช้การเรียกซ้ำ ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกตัวเองหลายครั้งจนกระทั่งตรงตามเงื่อนไขที่กำหนด
ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกตัวเองหลายครั้งจนกระทั่งตรงตามเงื่อนไขที่กำหนด
การเรียกซ้ำเป็นกระบวนการของการทำซ้ำรายการในลักษณะที่คล้ายคลึงกัน ในภาษาโปรแกรม หากโปรแกรมอนุญาตให้คุณเรียกใช้ฟังก์ชันภายในฟังก์ชันเดียวกันได้ จะเรียกว่าการเรียกใช้ฟังก์ชันแบบเรียกซ้ำ
ภาษาโปรแกรมหลายภาษาใช้การเรียกซ้ำโดยใช้สแต็ค โดยทั่วไป เมื่อใดก็ตามที่ฟังก์ชัน (ผู้โทร) เรียกใช้ฟังก์ชันอื่น (callee) หรือเรียกตัวเองว่าเป็นผู้รับสาย ฟังก์ชันผู้โทรจะโอนการควบคุมการดำเนินการไปยังผู้รับสาย ขั้นตอนการโอนนี้อาจเกี่ยวข้องกับข้อมูลบางส่วนที่ต้องส่งผ่านจากผู้โทรไปยังผู้รับสาย
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
ป้อนข้อมูล
สมมติว่าข้อมูลที่เราป้อนคือ −
ป้อนตัวเลขและกำลัง 2 และ 5
ผลผลิต
ผลลัพธ์ที่ต้องการจะเป็น −
ผลลัพธ์ของ 2^5 คือ 32
อัลกอริทึม
ขั้นตอนที่ 1 - STARTขั้นตอนที่ 2 - กำหนดค่าจำนวนเต็มสามค่า ได้แก่ my_power, my_input และ resultStep 3 - อ่านค่าที่ต้องการจากผู้ใช้/ กำหนดค่าขั้นตอนที่ 4 - ฟังก์ชันเรียกซ้ำ 'getPower ถูกกำหนดโดยรับจำนวนเต็มสองจำนวนเป็นอินพุตและส่งกลับ มูลค่าผลิตภัณฑ์ของค่าอินพุตด้วยตัวมันเองเป็นจำนวนครั้ง 'my_power' ขั้นตอนที่ 5 - เรียกใช้ฟังก์ชันซ้ำๆ จนกว่าค่าของ 'my_power' จะมากกว่า 0 เก็บผลลัพธ์ ขั้นตอนที่ 6 - แสดงผลลัพธ์ขั้นตอนที่ 7 - หยุดก่อน>ตัวอย่างที่ 1
ที่นี่ ผู้ใช้ป้อนอินพุตตามข้อความแจ้ง คุณสามารถลองใช้ตัวอย่างนี้ในเครื่องมือกราวด์ของเรา .
นำเข้า java.util.Scanner;คลาสสาธารณะ Power { public static void main(String[] args) { int my_power, my_input, ผลลัพธ์; my_input =2; my_power =5; System.out.println("นำเข้าแพ็คเกจที่จำเป็นแล้ว"); สแกนเนอร์ my_scanner =สแกนเนอร์ใหม่ (System.in); System.out.println("วัตถุตัวอ่านถูกกำหนดแล้ว"); System.out.print("ป้อนหมายเลข :"); my_input =my_scanner.nextInt(); System.out.print("ป้อนค่าพลังงาน:"); my_power =my_scanner.nextInt(); ผลลัพธ์ =getPower (my_input, my_power); System.out.println("ผลลัพธ์ของ " +my_input + "^" + my_power + " คือ " + ผลลัพธ์); } สาธารณะ int getPower (int my_input, int my_power) { if (my_power !=0) { return (my_input * getPower (my_input, my_power - 1)); } อื่น ๆ { กลับ 1; } }}ผลลัพธ์
นำเข้าแพ็คเกจที่ต้องการแล้ว มีการกำหนดวัตถุตัวอ่านแล้วป้อนหมายเลข :2ป้อนค่าพลังงาน :5ผลลัพธ์ของ 2^5 คือ 32ตัวอย่างที่ 2
ในที่นี้ มีการกำหนดจำนวนเต็มก่อนหน้านี้ และเข้าถึงและแสดงค่าบนคอนโซล
คลาสสาธารณะ Power { โมฆะคงที่สาธารณะ main (สตริง [] args) { int my_power, my_input, ผลลัพธ์; my_input =2; my_power =5; System.out.println("ตัวเลขและกำลังถูกกำหนดเป็น " +my_input + " และ " +my_power); ผลลัพธ์ =getPower (my_input, my_power); System.out.println("ผลลัพธ์ของ " +my_input + "^" + my_power + " คือ " + ผลลัพธ์); } สาธารณะ int getPower (int my_input, int my_power) { if (my_power !=0) { return (my_input * getPower (my_input, my_power - 1)); } อื่น ๆ { กลับ 1; } }}ผลลัพธ์
จำนวนและกำลังของมันคือ 2 และ 5 ผลลัพธ์ของ 2^5 คือ 32