ในบทความนี้ เราจะเข้าใจวิธีการหาผลรวมของจำนวนธรรมชาติโดยใช้การเรียกซ้ำ จำนวนบวกที่เป็นไปได้ทั้งหมดตั้งแต่ 1 ถึงอนันต์เรียกว่าจำนวนธรรมชาติ ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกตัวเองหลายครั้งจนกระทั่งตรงตามเงื่อนไขที่กำหนด
การเรียกซ้ำเป็นกระบวนการของการทำซ้ำรายการในลักษณะที่คล้ายคลึงกัน ในภาษาโปรแกรม หากโปรแกรมอนุญาตให้คุณเรียกใช้ฟังก์ชันภายในฟังก์ชันเดียวกันได้ จะเรียกว่าการเรียกใช้ฟังก์ชันแบบเรียกซ้ำ
ภาษาโปรแกรมหลายภาษาใช้การเรียกซ้ำโดยใช้สแต็ค โดยทั่วไป เมื่อใดก็ตามที่ฟังก์ชัน (ผู้โทร) เรียกใช้ฟังก์ชันอื่น (callee) หรือเรียกตัวเองว่าเป็นผู้รับสาย ฟังก์ชันผู้โทรจะโอนการควบคุมการดำเนินการไปยังผู้รับสาย ขั้นตอนการถ่ายโอนนี้อาจเกี่ยวข้องกับข้อมูลบางส่วนที่ต้องส่งผ่านจากผู้โทรไปยังผู้รับสาย
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
ป้อนข้อมูล
สมมติว่าข้อมูลที่เราป้อนคือ −
ป้อนหมายเลข :25
ผลผลิต
ผลลัพธ์ที่ต้องการจะเป็น −
ผลรวมของจำนวนธรรมชาติสูงสุด 25 คือ 325
อัลกอริทึม
ขั้นตอนที่ 1 - STARTขั้นตอนที่ 2 - ประกาศค่าจำนวนเต็ม 2 ค่าคือ my_input และ my_sum ขั้นตอนที่ 3 - อ่านค่าที่ต้องการจากผู้ใช้/ กำหนดค่าขั้นตอนที่ 4 - กำหนดฟังก์ชันเรียกซ้ำ 'เพิ่ม' ซึ่งรับจำนวนเต็มเป็นอินพุตและส่งกลับ ผลรวมของค่าอินพุตและค่าก่อนหน้าจนกระทั่งค่าอินพุตลดลงเป็น 0 ขั้นตอนที่ 5 - ฟังก์ชันเรียกซ้ำถูกเรียกและค่า 'my_input' จะถูกส่งต่อ เก็บค่าส่งคืน ขั้นตอนที่ 6 - แสดงผลลัพธ์ขั้นตอนที่ 7 - หยุด
ตัวอย่างที่ 1
ที่นี่ ผู้ใช้ป้อนอินพุตตามข้อความแจ้ง คุณสามารถลองใช้ตัวอย่างนี้ในเครื่องมือกราวด์ของเรา .
<ก่อน>นำเข้า java.util.Scanner; NaturalNumbers คลาสสาธารณะ { โมฆะคงที่สาธารณะหลัก (สตริง [] args) { int my_input, my_sum; System.out.println("นำเข้าแพ็คเกจที่จำเป็นแล้ว"); สแกนเนอร์ my_scanner =สแกนเนอร์ใหม่ (System.in); System.out.println("วัตถุตัวอ่านถูกกำหนดแล้ว"); System.out.print("ป้อนหมายเลข :"); my_input =my_scanner.nextInt(); System.out.println("ตัวเลขถูกกำหนดเป็น" +my_input); my_sum =เพิ่ม (my_input); System.out.println("ผลรวมของจำนวนธรรมชาติสูงสุด " + my_input + " คือ " + my_sum); } สาธารณะ int เพิ่ม (int my_input) { ถ้า (my_input> 0) กลับ my_input + เพิ่ม (my_input - 1); มิฉะนั้นให้ส่งคืน my_input; }}ผลลัพธ์
นำเข้าแพ็คเกจที่ต้องการแล้ว มีการกำหนดวัตถุตัวอ่านแล้วป้อนหมายเลข :25ตัวเลขถูกกำหนดเป็น 25ผลรวมของตัวเลขธรรมชาติสูงสุด 25 คือ 325
ตัวอย่างที่ 2
ในที่นี้ มีการกำหนดจำนวนเต็มก่อนหน้านี้ และเข้าถึงและแสดงค่าบนคอนโซล
คลาสสาธารณะ NaturalNumbers { โมฆะสาธารณะหลัก (สตริง [] args) { int my_input, my_sum; my_input =25; System.out.println("ตัวเลขถูกกำหนดเป็น" +my_input); my_sum =เพิ่ม (my_input); System.out.println("ผลรวมของจำนวนธรรมชาติสูงสุด " + my_input + " คือ " + my_sum); } สาธารณะ int เพิ่ม (int my_input) { ถ้า (my_input> 0) กลับ my_input + เพิ่ม (my_input - 1); มิฉะนั้นให้ส่งคืน my_input; }}
ผลลัพธ์
จำนวนที่กำหนดเป็น 25ผลรวมของจำนวนธรรมชาติสูงสุด 25 คือ 325